我的Mysql学习笔记

一、为什么要使用索引?

使用索引查找数据,能够避免全表扫描,提升查找效率。

二、什么样的信息能成为索引?

主键、唯一键等能让数据具备一定区别性的字段

三、索引的数据结构?

主流:B+ tree,小众:hash bitMap(oracle)

四、密集索引和稀疏索引的区别?

密集索引:每个搜索码值都对应一个索引值(索引跟数据一同存储)
稀疏索引:只为某些搜索码值对应索引值(索引跟数据分开存储)

五、mysql慢查询,处理sql语句执行速度慢问题

跳转链接

六、联合索引最左匹配原则

最左前缀匹配原则,非常重要的原则, mysql会一直向右匹配直到遇到范围查询(>、<、between, like)就停止匹配,比如a =3 and b=4 and c> 5 and d=6如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到, a,b,d的顺序可以任意调整。
=和in可以乱序,比如a =1 and b=2 and c=3建立(a,b,c)索引可以任意顺序, mysql的查询优化器会帮你优化成索引可以识别的形式。

七、MyISAM与InooDB

MyISAM:表锁,聚集索引、(查询高,没有事物,count(*))
InooDB:行锁(默认)、表锁,非聚集索引、(增删改查频繁、可靠性高、支持事物)

八、事物隔离级别,及并发访问问题

我的Mysql学习笔记