【问题标题】:Rails 2.3 - What is the most efficient way to persist large amounts of search data to MySQL?Rails 2.3 - 将大量搜索数据持久保存到 MySQL 的最有效方法是什么?
【发布时间】:2011-09-21 00:54:25
【问题描述】:

我的网络应用程序上的用户每天会产生大约 10 万个搜索请求(产品目录),每个请求都包含一个搜索词、类别 ID、用户 IP 和一个时间戳。我有一个 MySQL 实例 - 没有复制或主/从设置。

我担心所有这些写入都会影响应用程序的性能,只是想知道其他人如何使用类似的基础架构处理这种情况?

我曾考虑在白天将日志写入一个简单的 csv 文件,然后在晚上,当网络流量很少时,设置一个 rake 任务将这些记录导入适用的表中......这只是不过“闻起来不香”。

谢谢!

【问题讨论】:

    标签: mysql ruby-on-rails


    【解决方案1】:

    从一开始就有几种常见的缩放模式。

    首先,将您的系统分为 2 层:APP、DB。他们每个人都在独立的服务器上(云、vps、专用)。第二步是DB的横向扩展(从APP访问数据):写入master,从slave读取。

    其实,你只需要开始工作,然后你就会有更多的问题,什么更好,什么值得尝试。

    一些对您有用的资源:

    【讨论】:

    • 注意缓存层,在你的情况下更重要
    • 一个 GitHubber 人提供了一本书 Scaling experts
    【解决方案2】:

    更多信息可能会有所帮助,例如:服务器的配置是什么?您是现在遇到问题还是只是担心它可能很快就会发生?即使您遇到一些问题,您当前的应用程序也应该支持您一段时间,因为您仍然在单个服务器上。而且 MySQL 有许多不错的复制功能可供您使用。

    此外,如果您出于分析目的存储搜索,则可以定期将它们移动到另一个数据库服务器,该服务器专门用于数据挖掘。

    如果你真的很喜欢冒险并且喜欢实施最新和最伟大的技术,那么你可能想要研究 NoSQL 数据库。

    对于大容量、大数据,如今很多人似乎都偏爱 NoSQL 数据库。 High Scalability 博客提供有关许多非常受欢迎的大容量网站架构的信息。

    【讨论】:

      猜你喜欢
      • 2013-05-14
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多