如果涉及到通配符,有没有办法像操作员一样提高mysql的性能?例如:like '%test%‘
发布于 2010-03-20 09:35:48
如果您的查询类似于foo LIKE 'abc%'
或foo LIKE 'abc%def%'
,则MySQL可以使用索引。它可以将索引用于任何部分或第一个通配符之前的字符串。如果需要匹配字符串中任意位置的单词,则可能需要考虑使用FULLTEXT
索引。
有关索引的更多详细信息:http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html
全文搜索:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
发布于 2010-03-20 09:33:52
嗯,最简单的优化是有一个恒定的前缀(例如,"test%"
而不是"%test"
或"%test%"
),因为这将允许引擎使用索引来缩小搜索空间。然而,这并不是在所有情况下都是可能的。
有时,预处理步骤可以将通配符搜索转换为普通相等或全文搜索。通过找到一种结构化数据的方法,使其不需要通配符搜索,而不是试图优化通配符搜索,您将获得更多。
https://stackoverflow.com/questions/2481528
复制相似问题