上篇文章中,松哥和大家分享了索引的两个使用规则:
- 索引上不要使用函数运算。
- 使用覆盖索引避免回表。
上篇文章中,松哥和大家分享了索引的两个使用规则:
[TOC]
索引,可以有效提高我们的数据库搜索效率,各种数据库优化八股文里都有相关的知识点可背,不过单纯的被条目其实很容易忘记。
所以松哥想通过几篇文章,和大家仔细聊一聊索引的正确使用姿势,结合一些具体的例子来帮助大家理解索引优化,这是一个小小的系列,可能会有几篇文章,今天先来第一篇。
小伙伴们在面试的时候,有一个特别常见的问题,那就是数据库的回表。什么是回表?为什么需要回表?
MySQL 事务小伙伴们都懂,通过 begin 开启事务,通过 commit 提交事务或者通过 rollback 回滚事务。
在前面的文章中,松哥也和大家聊了一些事物原理以及相关的细节,小伙伴们可以回顾一下:
手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜!
我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态。网上也有很多删库跑路的段子。。。
那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何利用 binlog 来恢复 MySQL 中的数据,这样,以后要是不小心删库了,那也不用跑路了。
说到 MySQL 中的锁,相信小伙伴们多多少少都能说出来一些,例如全局锁、表锁、行锁等等。
今天我想和大伙分享一个经常容易被忽略的锁,那就是 MDL,这个锁如果忽略了,可能会导致大问题,一起来看下。
在上篇文章中涉及到了一个小小的问题,就是数据库事务的一致性视图是啥时候建立的?
这个问题还比较重要,如果没搞清楚,可能会影响我们做实验的结果,进而得出错误的结论,所以今天松哥和大家简单聊一聊这个话题。
[TOC]
前面写了一篇文章和大家分享了 MySQL 中查询表记录数的问题,里边涉及到一个知识点 MVCC 多版本并发控制。这个问题不搞懂,总感觉缺点什么。因此今天我想花点时间和大家聊一聊 MVCC。
纳尼?MySQL 中 count(*) 比 count(1) 快?
今天有人跟我讲 MySQL 中 count(1)
比 count(*)
快,这能忍?必须得和他掰扯掰扯。
声明:以下讨论基于 InnoDB 存储引擎,MyISAM 因为情况特殊我在文末会单独说一下。
[TOC]
上周松哥转载了一个数据批量插入的文章,里边和大家聊了一下数据批量插入的问题,批量插入到底怎么做才快。
有个小伙伴看了文章后提出了不同的意见: