【发布时间】:2020-03-18 17:53:44
【问题描述】:
我在开发环境方面面临两难境地。这是一个三表结构:
- 表格内容(文章、新闻...)
- 表格标签(每篇文章和新闻记录的标签)
- 表格跳过单词(诸如“for”、“get”、“to”之类的单词...)
主要思想是根据文本搜索获取内容记录,如何?
首先,根据Skip Words表从文本搜索中删除单词,然后将其余单词与tags表匹配。但是,我想给出一个“更智能”的结果,作为
第二步,我想首先得到与文本搜索的所有剩余单词匹配的文章。这些记录将是主要的印刷品。
第三步,如果没有与文本搜索的所有单词匹配的记录,则开始寻找匹配较少单词的记录并保持计数,依此类推,直到我得到内容记录列表。
最后步骤显示根据单词匹配量排序的记录。所以,考虑到这个过程,我想使用:
- 用于从上述所有步骤加载数据的临时表
- 使用单个存储过程和所需的所有逻辑
上面比较标签,使用“Like”条件(and field like "word1%" and field like "word2%")
但是,我关心的是性能。这将是主页网站中的一个过程,该网站每小时访问量超过 1700 次。我很感激你能解释你对这种过程的经验(如果有的话)?或者您认为考虑性能的最佳实施方式是什么?
【问题讨论】:
-
一天访问 1000 次不算什么,等到一分钟访问量达到 1000 次再担心
-
在模式末尾使用通配符应该没问题。如果它是在模式的开头,那将是一个问题。确保搜索列已编入索引。
-
对不起,我编辑了。该网站每小时获得(平均)1700 次访问!
标签: mysql performance search procedure temporary