关于 SQL in, or 到底走不走索引的问题ss

    关于这个问题,一般我们都是在网上搜索答案但是搜索出来的几乎都说,in、or s 使用后不走索引,最开始我也是一直这样认为的,但是最近自己在测试时就找到它到底走不走索引了。自己测试时使用 mysql  5.6,在测试中 sql 语句 最前面 都加有 explain 关键字,explain SELECT * FROM t_supplier_hr WHERE id > 9865 or supplierid > 30 or tttd ='7sd5'  在这个语句中 3个字段都是有索引的,查询下来是 没有走索引的,但把sql 改为 explain SELECT * FROM t_supplier_hr WHERE id > 9865 or supplierid > 30 它就走了索引,具体是什么原因走了索引 这确实没有找到原因,只能说 相对较短的 or 语句是走索引的,多个就不一定了,在使用前最好还是加上 explain  来试试到底走不走索引。而对于 in 进过多次测试 是走索引的。

    在网上也有搜到过这个也有mysql 的版本有一定关系, MySQL 4.1 以上版本的 IN 是走索引的, 但4.0及其以下版本是不走索引的。

    关于性能优化的情况特别是数据量大的表,一定要考虑性能和索引的使用,这个影响到用户体验和你程序的好坏。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值