MySQL 使用索引查询一定能提高查询的性能吗?为什么

请尝试在评论区里写下答案(如不能清楚表述,那么你可能没真正理解)。欢迎参与,为下一次求职做准备。

如题

摈弃世俗浮躁,追求技术精湛
Summer
讨论数量: 1

不一定,印象比较深刻的有如下几个原因

  • 像 like %xxx% 、不满足最左匹配原则的情况下并不能使用到建好的索引
  • MySQL 在可以使用多个索引的情况下,查询优化器会根据查询范围的数据量估算索引代价,最坏的是估算完毕后,发现这些索引的字段区分度不高,还不如扫全表,于是Mysql 扫全表了
  • 如果索引的列比需要查询的列少,Mysql 会通过聚簇索引回表查询其他字段
  • 如果索引的字段很大,每个页能存的条目就很少,读取时 IO 会消耗更多,页 Buffer 轮替的更快
1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!