繁体   English   中英

MySQL中的log-queries-not-using-indexes和LIKE

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM