MySQL
文章平均质量分 86
分享MySQL原理及实战经验。
零与一的笔记
程序的眼里只有零和一
展开
-
关于MySQL的锁,你想知道的全在这里了
在上述示例中,Session 1在事务开始之后使用`SELECT...FOR SHARE`语句对`products`表的`id=1`行加共享锁。在上述示例中,Session 1使用`FOR SHARE`语句获取`products`表中`id`为1的记录的共享锁,用于读取操作。在上述示例中,Session 1在事务开始之后使用`SELECT...FOR UPDATE`语句对`products`表的`id=1`行加排它锁。在事务执行期间,其他事务可以获取相同数据页的共享锁,但无法获取排他锁。原创 2023-07-05 14:42:23 · 107 阅读 · 1 评论 -
彻底搞懂MySQL索引失效原理,知其然,更要知其所以然
SQL中使用phone和lan_id两个字段进行查询,phone在B+树上是有序的,通过二分查找可以找到对应的phone,由于是联合索引,在确定phone的位置之后,再次对lan_id进行二分查找,在数据结构上这时lan_id也是有序的(看不懂这个逻辑,需要先搞明白图1的逻辑和B+树相关知识),所以这种情况是可以使用phone和lan_id两个索引的,也是最左前缀法生效的原理。索引进行二分查找,前提是有序的,这个很重要,也是导致索引失效的根本原因(所查找的数据是无序状态)。为什么这条SQL不能使用索引呢?原创 2023-07-05 14:34:56 · 71 阅读 · 1 评论