浅谈 mysql 索引及锁的应用
DESCRIPTION
浅谈 MySql 索引及锁的应用. 厦门大学数据库实验室 http://dblab.xmu.edu.cn 刘 颖 杰 2014 年 3 月 8 日. MySql 索引分类. B- 树索引 (B+- 树 ) 哈 希索引 空间数据索引 (R-Tree) 全文索引 其他索引类别. 为什么使用 B- 树索引?. 顺序搜索 N 二叉树 n B- 树. 全 值匹配 匹配最左前缀 匹配列前缀 精确匹配某一列并范围匹配另一列 索引覆盖. 如何使用 where 进行过滤. 如何使用 where 进行过滤. 什么是覆盖索引. 哈希索引的使用. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/1.jpg)
浅谈 MySql 索引及锁的应用厦门大学数据库实验室
http://dblab.xmu.edu.cn刘颖杰2014 年 3 月 8 日
![Page 2: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/2.jpg)
MySql 索引分类• B- 树索引 (B+- 树 )
• 哈希索引• 空间数据索引 (R-Tree)
• 全文索引• 其他索引类别
![Page 3: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/3.jpg)
为什么使用 B- 树索引?顺序搜索 N二叉树 nB- 树
n2log n2log n2log n2log
![Page 4: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/4.jpg)
• 全值匹配• 匹配最左前缀• 匹配列前缀• 精确匹配某一列并范围
匹配另一列• 索引覆盖
![Page 5: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/5.jpg)
如何使用 where 进行过滤
![Page 6: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/6.jpg)
如何使用 where 进行过滤 什么是覆盖索引
![Page 7: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/7.jpg)
哈希索引的使用
精确查找速度极快
![Page 8: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/8.jpg)
![Page 9: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/9.jpg)
使用 hash 的一个场景
Innodb 不显式支持哈希,于是手动建立,并使用触发器来维护
![Page 10: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/10.jpg)
• 全值匹配• 匹配最左前缀• 匹配列前缀• 精确匹配某一列并范围
匹配另一列• 索引覆盖
再谈 B- 树索引
![Page 11: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/11.jpg)
B- 树索引的缺陷
Where first_name=‘jay’ ;
Where last_name=‘leo’ and dob=‘1983-2-23’;
![Page 12: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/12.jpg)
MyIsam 和 Innodb 索引的不同
![Page 13: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/13.jpg)
锁问题——前情回顾隔离性
![Page 14: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/14.jpg)
MyIsam
永远不会发生死锁
![Page 15: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/15.jpg)
Innodb 的 MVCC
![Page 16: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/16.jpg)
Innodb 加锁浅谈
![Page 17: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/17.jpg)
![Page 18: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/18.jpg)
![Page 19: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/19.jpg)
![Page 20: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/20.jpg)
update t1 set id = 100 where name = ‘d’;
![Page 21: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/21.jpg)
![Page 22: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/22.jpg)
![Page 23: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/23.jpg)
![Page 24: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/24.jpg)
![Page 25: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/25.jpg)
![Page 26: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/26.jpg)
![Page 27: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/27.jpg)
![Page 28: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/28.jpg)
![Page 29: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/29.jpg)
![Page 30: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/30.jpg)
![Page 31: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/31.jpg)
![Page 32: 浅谈 MySql 索引及锁的应用](https://reader033.vdocuments.net/reader033/viewer/2022061421/568156c4550346895dc457e1/html5/thumbnails/32.jpg)
谢谢大家