索引

2020-01-27  本文已影响0人  kar_joe

Mysql索引模型采用B+树

主键索引与非主键索引

image.png

从图中不难看出,根据叶子节点的内容,索引类型分为主键索引和非主键索引。

覆盖索引

由于覆盖索引避免回表操作,可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。

最左前缀原则

最大程度复用索引


image.png

SELECT * FROM test_like WHERE uname LIKE 'j'/ 'j%' / '%j'/ '%j%',哪几种情况有借助于索引加速查询

索引下推

减少回表操作
mysql> select * from tuser where name like '张%' and age=10 and ismale=1;


image.png

普通索引与唯一索引

  1. 查询
  1. 写入
    假如数据不在内存页,普通索引可以利用change buffer,避免随机读;唯一索引只能读入磁盘数据,做冲突检测。
    changebuffer无法用在主键索引,但是他可以用在非主键非唯一索引(每颗B+树的插入都是独立的);但是对于读多写少的场景,并不适用。
  2. 举例
上一篇下一篇

猜你喜欢

热点阅读