Ruby on Rails:在数据库中保存搜索查询的最佳方式

时间:2012-12-11 22:49:09

标签: mysql ruby-on-rails database

对于我正在帮助开发的RoR应用程序,我需要将所有搜索查询保存在数据库中,以便稍后进行分析。

我现在的计划是创建一个结果模型和表,只保存该表中的每个搜索查询的文本,以及用户的ID,时间等。

然而,该应用程序有大约15,000个用户,所以我担心在解析数据时单表方法不会超级高效。 (数据库是通过MySQL设置的,如果这完全是因素的话。)

我只是偏执狂吗?是否有处理此类事情的Ruby gem,或者我可以采取的更好的方法?

任何意见都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下几种方法: 1.启用mysql查询日志记录,然后分析这些日志 http://dev.mysql.com/doc/refman/5.1/en/query-log.html 2.使用key =>值存储(想到redis)以与您描述的方式类似的方式记录搜索查询

如果您决定采用第二种方法,我会在您要跟踪的模型上创建一个异步观察者

答案 1 :(得分:0)

答案取决于您对数据的处理方式。

如果您的用户不需要访问此功能,并且您没有进行实时分析,请将其从您的应用中转储出来并将其转移到另一个数据库中,以便根据您的内容运行分析。

如果您想在应用中集成某些内容,请尝试使用单个mysql表。

除非您的服务器很小或您的用户是疯狂的活跃搜索者,否则它应该只是很好用。在某个时刻,您可能希望清除旧记录并将其保存在其他地方。