我正在构建一个相当大的数据库,我将拥有大量包含各种数据的表。
但是每个表都有类似的字段,例如视频标题或曲目标题。
现在我面临的问题是如何构建一个查询,该查询会在五个或更多表中查找关键字匹配,请记住,每个表可能有100k到100万行,或者在某些情况下甚至可能有几百万行行。
我认为对每个表使用连接或单独的查询会非常慢,所以我想到的是创建一个单独的表来存储搜索数据。
例如,我认为它可能包含这些字段,
id ---- username ---- title ---- body ---- date ---- belongs_to ---- post_id
这种方式我觉得搜索速度会快得多,或者我完全错了?
我能想到的这种方法的唯一问题是管理这个表很难,因为如果删除了某些表中的原始记录,我还需要从'search'表中删除记录
答案 0 :(得分:0)
不要使用MySQL加入很多表格,我建议您使用Apache Solr
来查看RDBMS答案 1 :(得分:0)
看看一些信息检索系统。它们还需要自己的索引,因此您需要在每次更新后(或以固定间隔)索引数据,以使搜索索引保持最新。但它们具有以下优点:
我过去曾使用xapian作为我的项目,我对它非常满意。 Lucene,Solr和elastic search是其他一些非常受欢迎的项目,可能符合您的需求。