是时候检查一下使用索引的姿势是否正确了!

[TOC]

索引,可以有效提高我们的数据库搜索效率,各种数据库优化八股文里都有相关的知识点可背,不过单纯的被条目其实很容易忘记。

所以松哥想通过几篇文章,和大家仔细聊一聊索引的正确使用姿势,结合一些具体的例子来帮助大家理解索引优化,这是一个小小的系列,可能会有几篇文章,今天先来第一篇。

阅读更多

什么是 MySQL 的“回表”?

小伙伴们在面试的时候,有一个特别常见的问题,那就是数据库的回表。什么是回表?为什么需要回表?

阅读更多

咦,为什么我的事务回滚不了?

MySQL 事务小伙伴们都懂,通过 begin 开启事务,通过 commit 提交事务或者通过 rollback 回滚事务。

在前面的文章中,松哥也和大家聊了一些事物原理以及相关的细节,小伙伴们可以回顾一下:

阅读更多

手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜!

我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态。网上也有很多删库跑路的段子。。。

那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何利用 binlog 来恢复 MySQL 中的数据,这样,以后要是不小心删库了,那也不用跑路了。

阅读更多

为什么执行 alter 更新表要慎重?

说到 MySQL 中的锁,相信小伙伴们多多少少都能说出来一些,例如全局锁、表锁、行锁等等。

今天我想和大伙分享一个经常容易被忽略的锁,那就是 MDL,这个锁如果忽略了,可能会导致大问题,一起来看下。

阅读更多

一致性视图是啥时候建立的?

在上篇文章中涉及到了一个小小的问题,就是数据库事务的一致性视图是啥时候建立的?

这个问题还比较重要,如果没搞清楚,可能会影响我们做实验的结果,进而得出错误的结论,所以今天松哥和大家简单聊一聊这个话题。

阅读更多

MVCC 水略深,但是弄懂了真的好爽!

[TOC]

前面写了一篇文章和大家分享了 MySQL 中查询表记录数的问题,里边涉及到一个知识点 MVCC 多版本并发控制。这个问题不搞懂,总感觉缺点什么。因此今天我想花点时间和大家聊一聊 MVCC。

阅读更多

纳尼?MySQL 中 count(*) 比 count(1) 快?

今天有人跟我讲 MySQL 中 count(1)count(*) 快,这能忍?必须得和他掰扯掰扯。

声明:以下讨论基于 InnoDB 存储引擎,MyISAM 因为情况特殊我在文末会单独说一下。

阅读更多

10万条数据批量插入,到底怎么做才快?

[TOC]

上周松哥转载了一个数据批量插入的文章,里边和大家聊了一下数据批量插入的问题,批量插入到底怎么做才快。

有个小伙伴看了文章后提出了不同的意见:

阅读更多