索引深入理解2-数据存储文件-使用规则

数据存储文件

frm文件是 是 MySQL 里面表结构定义的文件,不管你建表
的时候选用任何一个存储引擎都会生成


  • InnoDB
    • t_user.frm
    • t_user.idb

idb文件存储了表数据和索引

InnoDB 中,主键索引和辅助索引是有一个主次之分的。
辅助索引存储的是辅助索引和主键值。如果使用辅助索引查询,会根据主键值在主
键索引中查询,最终取得数据。


  • MyISAM
    • t_user.frm
    • t_user.MYD
    • t_user.MYI

MYD 是表数据文件
MYI 是索引文件

两个独立的文件通过索引叶子节点的地址来找到表数据文件的位置


索引使用规则

1. 索引并不是越多越好

ps:在一个有很多重复数据的列建立索引,不一定快
MySQL 的优化器发现走索引跟使用全表扫描差不了多少的时候,就算建了索引,也不一定会走索引

2. 联合索引最左匹配原则

3. 覆盖索引
在辅助索引里面,不管是单列索引还是联合索引,如果 select 的数据列只用从索引
中就能够取得,不必从数据区中读取,这时候使用的索引就叫做覆盖索引,避免回表

回表:非主键索引,我们先通过索引找到主键索引的键值,再通过主键值查出索引里面没
有的数据,它比基于主键索引的查询多扫描了一棵索引树,这个过程就叫回表

4.索引条件下推( ICP )
索引条件下推(Index Condition Pushdown),5.6 以后完善的功能,只适用于二
级索引
。ICP 的目标是减少访问表的完整行的读数量从而减少 I/O 操作。

ps: like 条件中前面带% —用不到索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值