[英]MySQL log-queries-not-using-indexes and UNION false positive or error?
[英]log-queries-not-using-indexes and LIKE in MySQL
我在MySQL中启用了“log-queries-not-using-indexes”。 我有一个由MySQL记录的查询,即不使用索引的查询。 事情是这个查询使用LIKE例如
category like '%fashion%'
如果我删除了LIKE或将其更改为
category = 'fashion'
然后它说它正在使用索引。
所以当我们在查询中使用LIKE时,MySQL会将其记录为不使用索引而不管是什么?
谢谢
使用%fashion%
类的子句永远不会使用常规索引。 如果要进行这种搜索,则需要全文索引。
请记住, varchar
在字符串的第一部分建立索引。 因此,如果您在字符串的任何部分搜索fashion
的发生,那么索引将无法帮助提高性能,因为您需要搜索每个字符串。
但是,如果您仅搜索这样的第一部分:
select * from table where field like 'fashion%'
然后可以使用索引,并且可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.