MySql 主键索引/二级索引/联合索引/覆盖索引傻傻分不清

MySql每个InnoDB表都有一个聚簇索引,InnoDB创建索引的具体规则如:
1.在表上定义主键PRIMARY KEY,InnoDB将主键索引用作聚簇索引;
2.如果表没有定义主键,InnoDB会选择第一个不为NULL的唯一索引列用作聚簇索引;
3.如果以上两个都没有,InnoDB 会使用一个6 字节长整型的隐式字段 ROWID字段构建聚簇索引。该ROWID字段会在插入新行时自动递增。
主键索引也叫聚簇索引,非主键索引也是二级索引。
主键索引存储的是主键id和全部数据二级索引储存的是索引值和主键值,当我们查询的字段不在索引储存的数据中,就会进行回表,即通过普通索引找到主键值,再通过主键值查询主键索引找到要查的数据,这就是回表操作。这种情况可以建立联合索引,也叫覆盖索引
普通索引如果查询id值,也是覆盖索引,因为它里面就储存主键值的呢。
如果sql执行做了回表操作,那么这条sql就是慢sql了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值