对于我正在帮助开发的RoR应用程序,我需要将所有搜索查询保存在数据库中,以便稍后进行分析。
我现在的计划是创建一个结果模型和表,只保存该表中的每个搜索查询的文本,以及用户的ID,时间等。
然而,该应用程序有大约15,000个用户,所以我担心在解析数据时单表方法不会超级高效。 (数据库是通过MySQL设置的,如果这完全是因素的话。)
我只是偏执狂吗?是否有处理此类事情的Ruby gem,或者我可以采取的更好的方法?
任何意见都会受到赞赏。
答案 0 :(得分:1)
您可以尝试以下几种方法: 1.启用mysql查询日志记录,然后分析这些日志 http://dev.mysql.com/doc/refman/5.1/en/query-log.html 2.使用key =>值存储(想到redis)以与您描述的方式类似的方式记录搜索查询
如果您决定采用第二种方法,我会在您要跟踪的模型上创建一个异步观察者
答案 1 :(得分:0)
答案取决于您对数据的处理方式。
如果您的用户不需要访问此功能,并且您没有进行实时分析,请将其从您的应用中转储出来并将其转移到另一个数据库中,以便根据您的内容运行分析。
如果您想在应用中集成某些内容,请尝试使用单个mysql表。
除非您的服务器很小或您的用户是疯狂的活跃搜索者,否则它应该只是很好用。在某个时刻,您可能希望清除旧记录并将其保存在其他地方。