Transcript
Page 1: 浅谈 MySql 索引及锁的应用

浅谈 MySql 索引及锁的应用厦门大学数据库实验室

http://dblab.xmu.edu.cn刘颖杰2014 年 3 月 8 日

Page 2: 浅谈 MySql 索引及锁的应用

MySql 索引分类• B- 树索引 (B+- 树 )

• 哈希索引• 空间数据索引 (R-Tree)

• 全文索引• 其他索引类别

Page 3: 浅谈 MySql 索引及锁的应用

为什么使用 B- 树索引?顺序搜索 N二叉树 nB- 树

n2log n2log n2log n2log

Page 4: 浅谈 MySql 索引及锁的应用

• 全值匹配• 匹配最左前缀• 匹配列前缀• 精确匹配某一列并范围

匹配另一列• 索引覆盖

Page 5: 浅谈 MySql 索引及锁的应用

如何使用 where 进行过滤

Page 6: 浅谈 MySql 索引及锁的应用

如何使用 where 进行过滤 什么是覆盖索引

Page 7: 浅谈 MySql 索引及锁的应用

哈希索引的使用

精确查找速度极快

Page 8: 浅谈 MySql 索引及锁的应用
Page 9: 浅谈 MySql 索引及锁的应用

使用 hash 的一个场景

Innodb 不显式支持哈希,于是手动建立,并使用触发器来维护

Page 10: 浅谈 MySql 索引及锁的应用

• 全值匹配• 匹配最左前缀• 匹配列前缀• 精确匹配某一列并范围

匹配另一列• 索引覆盖

再谈 B- 树索引

Page 11: 浅谈 MySql 索引及锁的应用

B- 树索引的缺陷

Where first_name=‘jay’ ;

Where last_name=‘leo’ and dob=‘1983-2-23’;

Page 12: 浅谈 MySql 索引及锁的应用

MyIsam 和 Innodb 索引的不同

Page 13: 浅谈 MySql 索引及锁的应用

锁问题——前情回顾隔离性

Page 14: 浅谈 MySql 索引及锁的应用

MyIsam

永远不会发生死锁

Page 15: 浅谈 MySql 索引及锁的应用

Innodb 的 MVCC

Page 16: 浅谈 MySql 索引及锁的应用

Innodb 加锁浅谈

Page 17: 浅谈 MySql 索引及锁的应用
Page 18: 浅谈 MySql 索引及锁的应用
Page 19: 浅谈 MySql 索引及锁的应用
Page 20: 浅谈 MySql 索引及锁的应用

update t1 set id = 100 where name = ‘d’;

Page 21: 浅谈 MySql 索引及锁的应用
Page 22: 浅谈 MySql 索引及锁的应用
Page 23: 浅谈 MySql 索引及锁的应用
Page 24: 浅谈 MySql 索引及锁的应用
Page 25: 浅谈 MySql 索引及锁的应用
Page 26: 浅谈 MySql 索引及锁的应用
Page 27: 浅谈 MySql 索引及锁的应用
Page 28: 浅谈 MySql 索引及锁的应用
Page 29: 浅谈 MySql 索引及锁的应用
Page 30: 浅谈 MySql 索引及锁的应用
Page 31: 浅谈 MySql 索引及锁的应用
Page 32: 浅谈 MySql 索引及锁的应用

谢谢大家


Top Related