场景:在项目中,因为兴趣所以私下组织了一个技术分享会,每周推荐一个成员分享一个主题,本周是主题分享的第二次沙龙,我负责当主讲人,下面是我的主题提纲 :
一.mysql简介
1.1历史
mysql公司-sun公司(5.0版本)-oracle公司(5.5)(收购了sun,innodb公司))
1.2mysql 逻辑架构
二.索引类型(B-Tree 索引 和hash 索引)
2.1b-tree
取代全表扫描,从索引根节点进行搜索
优势:
全值匹配
匹配最左前缀
匹配列前前缀
匹配范围值
只访问索引查询
2.2hash 索引(innodb 引擎 有自适应哈希索引)
用于精确匹配索引所有的查询才有效率。对于每行数据,存储引擎都会对所有的索引列计算一个哈希码,要维护一张hash表,存储 每行数据行的指针。(hash索引基本是隐式,需要开启)
限制使用:
索引表包含哈希值和行指针
不是按照索引值顺序存储的,无法用于排序
不支持部分索引列匹配查找,只支持等值比较查询如 =,in
三.高性能的索引策略
3.1 独立的列
(案例3:索引合并)
3.2选择合适的索引列顺序
3.3聚[蔟](cù)索引
四.总结