Mysql
Mysql
jannals
没有失败,只有缓慢的成功
展开
-
Mysql之B+Tree
文章目录B+Tree数据页B+TreeMysql没有选择B-Tree的原因B-Tree每个结点都保存数据,每个结点的大小有限,这样会导致树的深度变高,从而导致磁盘I/O操作次数增加不能很好的利用操作系统读取磁盘的特性(操作系统每次读取4k的数据,以页为单位)不能很好的利用磁盘的预读能力(操作系统每次读取一页,会提前预读下一页或者下几页)使用B+Tree非叶节点不保存数据...原创 2020-03-09 21:31:37 · 461 阅读 · 0 评论 -
Mysql之加锁规则
文章目录锁准备数据等值查询间隙锁非唯一索引等值锁非唯一索引等值锁for Update主键索引范围锁非唯一索引范围锁锁MySql只有在RR的隔离级别下才有gap lock和next-key lock加锁规则规则1:加锁的基本单位是next-key lock(前开后闭区间)规则2:查找过程中访问到的对象才会加锁优化1:索引上的等值查询,给唯一索引加锁的时候,next-key lock...原创 2020-03-09 21:20:15 · 1310 阅读 · 2 评论 -
Mysql之死锁案例
文章目录删除后插入死锁问题环境准备开启监控步骤解决方案插入更新导致的死锁删除后插入死锁问题环境准备数据库版本$ mysql -Vmysql Ver 14.14 Distrib 5.6.35, for macos10.12 (x86_64) using EditLine wrapper或者mysql> select version();+-----------+| ...原创 2020-03-09 21:15:58 · 380 阅读 · 0 评论 -
Mysql之隔离级别
文章目录RC隔离级别RR隔离级别幻读实验RC隔离级别RC 的本质就是事务中每一条 SELECT 语句均可以看到其他已提交事务对数据的修改,那么只要该事物已经提交其结果就是可见的,与这两个事务开始的先后顺序无关,不完全适用于 MVCC 读。RR隔离级别RR 的本质是从第一个 SELECT 语句生成 ReadView 开始,任何已经提交过的事务的修改均可见幻读事务T1读取了满足...原创 2020-03-09 21:05:31 · 165 阅读 · 0 评论 -
Mysql之count
文章目录实现方式大表统计问题实现方式MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count(*)的时候会直接返回这个数,效率很高。(没有过滤条件的情况下)InnoDB执行count(*)的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。InnoDB是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点是主键值。所以,普通索引树比主键索引树小很多...原创 2020-03-06 21:39:06 · 151 阅读 · 0 评论 -
Mysql之Explain
文章目录执行计划列信息idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra执行计划所谓的执行计划就是Mysql如何执行一条Sql语句,包括Sql查询的顺序、是否使用索引、以及使用的索引信息等内容。不同版本的Mysql和不同的存储引擎执行计划不完全相同语法1. 基本explain ...原创 2020-03-06 21:36:38 · 322 阅读 · 0 评论 -
Mysql之MVCC
文章目录简介InnoDB实现插入删除修改查询简介MVCC(Multiversion Concurrency Control),即多版本并发控制技术。它使得大部分支持行锁的事务引擎,不再单纯的使用行锁进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读(实现了读写并发),大大提高了数据库的并发性能。总结一句话:MVVC就是同一份数据临时保...原创 2020-03-06 21:15:42 · 146 阅读 · 0 评论 -
Mysql之大字段溢出问题
文章目录Mysql版本InnoDB数据页存储行溢出(off-page)行格式Compact行记录格式Barracuda总结如何优化大字段Mysql版本查看版本mysql> select version();+-----------+| version() |+-----------+| 5.6.44 |+-----------+1 row in set (0.0...原创 2020-03-06 21:11:09 · 3934 阅读 · 1 评论 -
Mysql之索引
文章目录索引索引原理索引技巧与注意事项建立索引的原则利用索引排序InnoDB索引模型联合索引聚集索引辅助索引覆盖索引索引合并Cardinality(基数)查看索引Cardinality优化器选择不使用索引的情况MRR验证MRRICP验证ICP索引只有当索引帮助存储引擎快速查找到记录的带来的好处大于其带来的额外工作时,索引才是有效的。对于非常小的表,大部分情况下简单的全表扫描更高效...原创 2020-03-06 21:08:48 · 217 阅读 · 0 评论