
mysql
文章平均质量分 67
小手WA凉
一名zzuli在校生
展开
-
Mysql的行级锁到底锁住了哪些行
主键索引(即使自己没有明确指定主键行,MySQL会默认选择一个唯一的非空索引作为聚簇索引,如果没有适合的非空唯一索引,则会创建一个隐藏的主键(row id)作为聚簇索引)组织起来的,数据都存储在叶子结点上。二级索引存储主键值,查询时需回表到主键索引获取数据。若通过二级索引更新,先锁二级索引条目,如果命中了索引覆盖这种情况,则不会再锁主键索引条目。若WHERE条件无可用索引,InnoDB会全表扫描(遍历主键索引),导致所有扫描的行(包括不符合条件的行)被加锁。在可重复读隔离级别下,还会添加间隙锁,原创 2025-03-08 17:55:36 · 759 阅读 · 0 评论 -
Mysql的Innodb的RR隔离级别到底有没有解决幻读问题?
InnoDB中的repeatable read这种隔离级别通过解决了大部分的幻读问题,但是并不是所有的幻读都能解读,想要彻底解决幻读,需要使用Serializable的隔离级别。原创 2024-10-14 21:14:42 · 494 阅读 · 0 评论 -
单表2000万要考虑分表?三层B+树大概能存多少数据量?
我们都知道,随着表中数据量的增加,B+树的高度会逐渐增加。如果 B+树的高度过高,每次查询需要经过较多的层级,会导致查询性能下降。因此,B+树的高度限制是单表存储量的一个瓶颈。对于B+树的高度限制,一般建议将B+树的高度控制在3到4层以内,以获得更快的查询性能。B+树的非叶子结点存储主键和指向子结点的指针,叶子结点存储实际的数据行。原创 2024-10-10 11:24:45 · 664 阅读 · 0 评论