0

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

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

但是,该应用程序有大约 15,000 个用户,所以我担心单表方法在解析该数据时不会非常有效。(数据库是通过 MySQL 设置的,如果有的话。)

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

任何输入将不胜感激。

4

2 回答 2

1

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

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

于 2012-12-11T23:01:56.583 回答
0

答案取决于你想对数据做什么。

如果您的用户不需要访问此内容,并且您没有进行实时分析,请将他们从您的应用程序中转储出来,然后将他们放入另一个数据库中,以便对您的内容进行分析。

如果您想将某些东西集成到您的应用程序中,请尝试使用单个 mysql 表。

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

于 2012-12-12T00:44:24.230 回答