当索引列和“喜欢的模式”是什么时,mysql 5.7总是执行解释的类型索引吗?

问题描述 投票:-1回答:1

一个采访问题:“什么时候mysql索引没有使用?”有人说:“当喜欢使用'%'时,'%'是第一个字符。”

然后我测试了sql,并感到困惑......

他的意思是1.在某些情况下,mysql不使用索引进行搜索

要么

2.当遇到'%abc'或'%abc%'时,仍然使用索引但是会进行全索引扫描,那么索引会失效吗???

mysql sql-like explain
1个回答
0
投票

这是因为MySQL不可能索引所有可能的子串。它只能处理abc%前缀类型查询,因为索引是有序的,因此有时可以使用索引优化LIKE查询。

MySQL的EXPLAIN的问题是它与其他RDBMS平台相比相当弱,并且进行了大量的猜测,有时甚至是疯狂的推测。

相比之下,Postgres将为您提供实际查询执行方式的细分,并考虑实际值。 MySQL倾向于对将要发生的事情提出最佳猜测,实际结果可能完全不同。

© www.soinside.com 2019 - 2024. All rights reserved.