用户表里常用到SELECT id
,status
FROM eoc_user where id=:id AND status=1 limit 1这样的查询。
id=1 AND status=1 这样的应该建立组合索引么
用户表里常用到SELECT id
,status
FROM eoc_user where id=:id AND status=1 limit 1这样的查询。
id=1 AND status=1 这样的应该建立组合索引么
首先,这里的 id
应该是主键吧?
然后是否适合可以考虑几个问题:
status
类型是 int
吧? 其值是否为有限可枚举的?一般来看,这种情况是没必要建 组合索引
的,因为 索引
维护也是有成本的,会降低插入的效率。
而且如果 id
本身为主键唯一,查询的速度就已经很快了。
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
从实际场景出发 , 结合数据量 , 然后充分利用explain多做几次执行计划 , 才会有谱 .
如果也就个几千几万的量 , 不加看起来也没什么问题 .
除此之外 , 就是你这个status的状态值有几种 , 假如只有0和1两种 , 索引的效果或许( 我是说或许 )不会有那么好 , 多说无意 , 自己做点儿数据跑跑测试吧 .