我的目标是避免尝试匹配通配符的查询,因为它比匹配后跟通配符的前缀的查询慢 100 倍。
对于单个单词来说这不是问题,但是如果我有用逗号分隔的单词列表怎么办?
是否有任何有效的方法可以通过前缀(后面带有通配符)而不是仅通过通配符来匹配这些单词?
我的意思是有什么方法可以避免在这种情况下匹配像 %word% 这样的模式吗?
最佳答案
假设您在列表上有一个索引。否则,前缀匹配与非前缀匹配的 like
性能不应慢 100 倍。是的,稍微慢一些。但大部分工作应该是从页面读取数据。
如果您有一个用逗号分隔的单词列表,那么您的数据结构是错误的。您需要引入一个带有 id 和每个单词的新表。
将数据正确标准化后,您就可以为查询使用正确的关系结构,而无需使用 like
来连接表或查找元素。
关于php - 与 mysql DB 匹配单词列表的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176627/