浅谈 mysql 索引及锁的应用

32
浅浅 MySql 浅浅浅浅浅浅浅 浅浅浅浅浅浅浅浅浅浅 http://dblab.xmu.edu.cn 浅浅浅 2014 浅 3 浅 8 浅

Upload: raiden

Post on 21-Mar-2016

135 views

Category:

Documents


7 download

DESCRIPTION

浅谈 MySql 索引及锁的应用. 厦门大学数据库实验室 http://dblab.xmu.edu.cn 刘 颖 杰 2014 年 3 月 8 日. MySql 索引分类. B- 树索引 (B+- 树 ) 哈 希索引 空间数据索引 (R-Tree) 全文索引 其他索引类别. 为什么使用 B- 树索引?. 顺序搜索 N 二叉树 n B- 树. 全 值匹配 匹配最左前缀 匹配列前缀 精确匹配某一列并范围匹配另一列 索引覆盖. 如何使用 where 进行过滤. 如何使用 where 进行过滤. 什么是覆盖索引. 哈希索引的使用. - PowerPoint PPT Presentation

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 索引及锁的应用

谢谢大家