【问题标题】:MySQL search tacticsMySQL 搜索策略
【发布时间】:2011-07-06 16:07:08
【问题描述】:
我正在对我的项目进行搜索,要求:
- 可以在不同表格的两列(tags & titles)中找到关键字
- #1 搜索标签以进行精确匹配
- 如果为空,2# 使用 MySQL SOUND LIKE 功能搜索标签
- 如果为空,则使用 LIKE='%word%' 为每个单词搜索 titles 3#
不知道你是否明白。希望如此。
现在的问题。我在一本书中读到,使用 LIKE 和 % 进行查询不会使用索引来加快速度。
如果这是真的,我的公式会变慢,而 tags 和 titles 会增加。
你会在性能方面做什么?
谢谢,
【问题讨论】:
标签:
mysql
search
indexing
【解决方案2】:
我认为,在任何“线性”类型的搜索公式中,添加关键字/标签等内容进行搜索最终会导致搜索速度变慢。这不是关系数据库的主要问题吗? (如果我错了,请纠正我)
【解决方案3】:
如果您只想坚持使用 2 个表格并且想要进行模糊文本匹配,请查看 MATCH ... AGAINST。它或多或少会做你想要的。但也有一些注意事项。
-
FULLTEXT 索引只能在 MyISAM 表上实现,不能在 INNODB 上实现
- 如果您的文本确实遵循标准单词分布,您的结果可能不是最佳的
如果您愿意超越关系方法,Solr 这样的索引器可能适合您。