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