InnoDB 全表扫描和全主键扫描一样吗?
InnoDB 表的主键索引包含了表中所有数据,全表扫描和全主键扫描还会有什么不一样吗?
my.cnf 增加一个配置项,MySQL 不能启动了
官方文档里明明有 foreign_key_checks 系统变量,在 my.cnf 中增加这个系统变量之后,MySQL 就启动不了了,这是为什么呢?
MySQL 自适应哈希索引(一)构造
评估扫描区间覆盖的记录数量、查询执行阶段定位扫描区间的第一条记录、插入记录定位插入目标位置时,自适应哈希索引(AHI)都可以提升定位记录的效率,本文是 AHI 系列的第 1 文章篇,介绍 AHI 的构造流程。
explain 显示 count(*) 使用了索引,实际却是全表扫描
本文介绍了 8.0.32 中的 count(*) 相比于 5.7.35 中的变化。
为什么需要插入意向锁?
InnoDB 有意向锁和插入意向锁,你会把这两种锁搞混吗?通过这篇文章来了解下插入意向锁吧。
information_schema.tables 视图中,表的最后修改时间靠谱吗?
information_schema.tables 视图的 update_time 字段记录了表的最后修改时间,本文介绍了 update_time 从哪里来,到哪里去,以及为什么不靠谱。
答读者问:唯一索引冲突,为什么主键的 supremum 记录会加 next-key 锁?
插入一条记录,导致唯一索引冲突,为什么会对主键的 supremum 记录加 next-key 排他锁?
慢查询日志中的 Lock_time 从哪里来?
聊聊 Lock_time 是谁,从哪里来,要到哪里去(实际上去处已定,不用聊)。
带你读 MySQL 源码:where 条件怎么过滤记录?
源码分析系列文章的第 3 篇,介绍了 SQL where 条件中包含 and、or 的实现逻辑。
带你读 MySQL 源码:limit, offset
带你读 MySQL 源码系列文章第 1 篇,介绍 MySQL limit, offset 源码实现。
MySQL 客户端不辞而别,服务端怎么办?
MySQL 客户端断开连接后,之前发送给服务端执行的 SQL,执行结果是成功还是失败?
MySQL 客户端 Ctrl + C,服务端会发生什么?
本文介绍了客户端给 MySQL 发送一条 SQL 之后,SQL 执行完成之前,客户端 Ctrl + C 时会干什么?接下来服务端又会发生什么?
MySQL 调试环境搭建:VSCode + Docker
本文介绍了 VSCode + Docker + CentOS 7.9 搭建 MySQL 调试环境的完整流程。
修改 lower_case_table_names 导致 frm 文件删除失败
本文分析了 MySQL 删除数据的主要逻辑,介绍了 lower_case_table_names 的不同枚举值对于数据库名、表名的影响,以线上修改 lower_case_table_names 导致 frm 删除失败的具体原因。