我必须在我的完全InnoDB MySql数据库的两个字段上进行文本搜索.在过去,我用:
Field1 LIKE %text% OR Field2 LIKE %text%但是现在我的数据增加了很多,搜索变得太慢了。于是我开始寻找另一个更好的解决方案。
从现在起我试过:
我使用MyISAM“阴影表”作为全文索引..。
我不想使用像狮身人面像、Lucene或s.e这样的外部搜索引擎
我的问题是:有什么东西我忘了吗?我在想一个办法让这两种通配符都起作用。就像Oracle中的上下文索引。或者我不知道.这就是我问的原因;)
发布于 2013-03-05 00:18:38
模式中的领先百分比'%‘符号导致执行表扫描,因此,随着数据容量的增加,性能会下降。
请注意,这也反映了,由于非原子性的字段,yor数据不是长时间的“关系型”;您的DB不再是关系型的DataBase,而不能忍受您仍在使用关系数据库作为数据存储引擎。
真正的解决方案是通过将Field1和Field2转换回一组关系型字段(即原子字段)来重构数据表。我知道,对于手头的项目来说,这可能超出了任何合理的范围,但这是解决办法。
https://stackoverflow.com/questions/15207098
复制相似问题