随笔分类 - 数据库
摘要:MySQL 使用B+树做索引的原因? B+树的查询效率更加稳定。只有子节点才存放数据,每次查询都需要到子节点获取数据块,因此每次数据的查询效率相当。 B+树中间节点只有索引,使用同样的物理存储空间,可以容纳下更多的B+树节点。 B+树叶子节点之间构成一个有序链表,能支持范围查询。 B树的结构 B+树
阅读全文
摘要:各种锁 全局锁 FTWRL mysql 通过flush table with read lock 来加全局读锁。使用了FTWRL后整个库只能读,不能个更新和执行DDL,有更新的事务等 用处: 逻辑备份。如果数据库中有一张表不是事务引擎,使用mysqldump就无法使用--single-transac
阅读全文
摘要:什么是next-key lock? 在RR(可重复读,mysql默认事务隔离级别)隔离级别下,mysql 通过next-key lock解决了大部分幻读的场景。 next-key lock 由行锁和间隙锁组成。 比如(5, 10) 和 加在10上的行锁组成(5,10]的next-key lock 怎
阅读全文
摘要:Mysql有什么办法解决主备延迟的引起的过期读问题? 一主多从的架构,主写入和少量的读,从库承担大量的读。读从库有不可避免的延迟,有些业务是不允许过期读。 强制走主库方案 比如金融类的业务就必须查询主库 sleep 方案 某些特殊场景下可能有用,比如淘宝商家发布商品后,只用将发布的内容展示在页面上,
阅读全文
摘要:MySQL支持下面的索引类型: 1. 哈希索引,只有memory引擎支持 2. 全文索引,MyISAM支持,Innodb(mysql5.6后支持) 3. BTree,B+Tree。B+Tree的非叶子节点不存储data,就可以存储更多的key 什么时候要使用索引? 1. 主键自动建立唯一索引; 2.
阅读全文