2011-03-01 25 views
1

我执行我的项目搜索,要求:MySQL的搜索战术

  • 关键字可以在两列(标签 & 冠军)从不同的表
  • #1搜索找到标签精确匹配
  • 如果为空,2#搜索标签使用MySQL声音样功能
  • 如果为空,3#使用LIKE = '%字%'
    • 相交标题每个单词搜索冠军导致

,如果你的想法不知道。希望如此。
现在的问题。我在一本使用LIKE和%在乞讨中查询的书中不会使用索引来加快速度。

如果这是真的,我的公式会变慢,而标签标题增加。

你会在表现方面做什么?

感谢,

回答

0

假设MyISAM表,你可能想要考虑实施full-text search作为替代LIKE。

+0

FULLTEXT是要走的路 – cmancre 2011-03-02 19:35:25

0

我想在任何“线性”类型的搜索公式添加的东西像关键字/标签来搜索最终会导致它变得更慢了很多,只要搜索去的。不是关系数据库的主要问题吗? (纠正我,如果我错了)

0

如果你想坚持只是你的2表,你想做模糊文字匹配,看看MATCH ... AGAINST。它会做或多或少你想要的。但是有一些警告。

  • FULLTEXT指数只能在MyISAM表来实现,而不是InnoDB的
  • 如果你的文本不遵循标准字分布,如果你愿意去超越你的结果可能不是最优的

一个关系方法,像Solr这样的索引器可能适合你。

+0

对不起。 FULLTEXT指数是要走的路。 – cmancre 2011-03-02 19:33:52