innodb索引使用

1 索引的适用场景

1)全值查询
where中使用 = 进行查询时,对条件列使用索引

2)匹配最左边的列
联合索引在b+树的结构是先按照最左边列从小到大排序, 最左边列相同在按照第二个列字段从小到大排序,
使用最左边列可以走b+树索引

3)范围查询
索引列的值都是按照从小到大顺序排列的,非常适合范围查询

例如:
a > 1 and a < 10
between a and b

查询出的数据如果超过了全表数据的60%,mysql的优化器会优化成全表查询

4)用于排序
因为b+索引列是按照从小到大的顺序排列的, 用索引字段排序会走索引

5)用于分组

2 索引注意事项

1)只为搜索、排序、分组的列建立索引,不能根据select 中列字段作为依据建立索引
2)根据索引字段查询时,select展示的字段劲量只有二级索引中的列, 可以避免进行回表查询,提高查询性能
3)索引列不能参与函数表达式,否则会失效
4)使用联合索引最左边的列,才能走索引
5)字符串作为索引列,模糊查询时,字符串前缀加%可以走索引 ab%
字符串可以使用前缀的前几位作为索引,节省索引空间,可以存更多东西,减少了回表查询IO的消耗
6)不能使用负向查询, not in <> !=

6)为了减少 聚簇索引 发生页面分裂和记录移位, 建议让主键进行auto_increament
7)删除表中重复的索引, 因为重复的索引会占用内存
8)索引列的类型劲量小、字符串索引只为前几位前缀建立索引, 可以提高索引的空间利用率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值