我一直在致力于Mysql db的设计,基于关键字的搜索似乎是必要的。主表有两列:
id | Title对于每个条目,用户将被要求输入4个或5个关键字。我认为使用单独的表作为关键字会更好。我想知道这两种设计在性能、可伸缩性和管理方面是否有任何不同。主表中将有数百万行。
id | keywords
1  | 1kword1, 1kword2, 1kword3
2  | 2kword1, 2kword2, 2kword3或
id | keyword
1  | 1kword1 
2  | 1kword2 
3  | 1kword3
4  | 2kword1 
5  | 2kword2 
6  | 2kword3发布于 2012-05-19 21:22:36
如果您使用逗号分隔的关键字集,您将被迫使用全文搜索解决方案来查找记录,在这种情况下,将它们添加到主表中是有益的。在第二种情况下,如果您正在搜索准确的关键字匹配,您的性能将更快,您可以使用标准的基于字符串的索引,而不是全文索引。
使用专门的搜索引擎会更好。狮身人面像搜索有一个构建(如果已经不是标准的话),它可以很好地与MySQL一起工作。Solr也是一个不错的解决方案。
取决于您的前端,它可能更容易实现和管理。
https://softwareengineering.stackexchange.com/questions/149274
复制相似问题