mysql索引

MYSQL索引
主键索引

任何表都有主键(没有默认创建隐藏的主键列),按主键字段排序,分数据页组用二分查询,目录页太多继续分组。实际一个索引就是1个B+数

叶子节点存储所有记录的完整信息,非节点存储主键和下个数据页地址。

数据页的大小为16kb

普通索引

和主键索引树类似,按普通字段排序,只要存储下个数据页地址 、主键和普通字段而不用完整记录(浪费磁盘)。

找到主键id再用主键索引回表查询,回表查询耗用性能(数据页不在内存中,需磁盘加载到内存)

联合索引

A,B

where A=‘’

where A=‘’ and B=‘’

where B=‘’

与普通索引类似,只是联合排序,先排序A,再排序B,单独查询B字段不会生效索引,遵循最左原则。节点存储下个数据页地址 、主键、A、B

explain

可以分析select查询优化器实际是否用到索引,还是全表扫描。优化器会把不使用索引,和使用给个索引的效率比较取最好的方案。

索引的使用
  1. 离散度很低的列无需创建索引,where后面的字段一般创建索引,不用大量创建索引,删除新增修改都要维护目录的改动,还大量占用磁盘,很大的字段也不该创建索引
  2. 利用联合索引,把重要的字段放最左边,无需单独创建多个普通索引
  3. 对于创建的索引,避免其失效,or 、对索引列 函数操作,类型转换都会导致主键失效。

参考视频:https://www.bilibili.com/video/BV1de4y1r7W4/?spm_id_from=333.788&vd_source=530c13983408581426f5b6d00155ba90

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值