2012-02-15 28 views
0

我正在研究一个Ruby on Rails站点,该站点将有一组可用一个或多个关键字标记的记录。与本网站上的问题可以用关键词标记的方式非常相似。关键字查询的最快数据库设计

Rails做到这一点的方法是在记录和关键字之间建立多对多的关系。但是我想知道这个连接是否会在有很多记录时减慢搜索速度。

特别是,我需要对多个关键字进行搜索,例如'给我所有带有关键字A,F和G标记的记录'。我不确定Rails如何优化这种类型的查询。

有关构建此类型应用程序的模型和/或控制器的最佳方法的任何想法?

+1

类似的问题作为[http://stackoverflow.com/questions/234796/optimal-data-architecture-for-tagging-clouds-and-searching-like-stackoverflow](http://stackoverflow.com/questions/ 234796 /最佳数据架构换标记-云和 - 搜索样计算器)? – Bill 2012-02-15 17:44:52

+0

比尔:感谢您的参考。很有用。 – John 2012-02-15 19:26:45

回答

1

虽然记录和关键字(标记)之间的典型foriegn关键关系可以很好地用作存储结构;如果您非常关心更快速地访问相同的原因,为什么不在您的应用程序中添加像memcached这样的缓存层:增加了程序的复杂性,但已知为read操作提供了显着的性能优势。

+0

啊...我想你已经击中了我的特定应用程序。获取一个标签的所有记录显然是非常有效的,当你找到3个标签的截取点时,比如说,事情变得缓慢。但是Rails内置了SQL缓存,所以第一集的缓存速度会很慢,但后续的速度会很快。问题解决了。谢谢。 – John 2012-02-15 19:25:51