【问题标题】:Figure out database problems找出数据库问题
【发布时间】:2014-10-20 08:43:39
【问题描述】:

一开始我想说我不是这个领域的专家,描述所有细微差别是有问题的。我在使用 Mysql 数据库的 Rails 应用程序上工作。我们的数据库已经增长,现在我们遇到了严重的性能问题。在我们的应用程序中,我们有两个功能(例如与移动设备同步)处理大量数据并导致我们的数据库挂起。我们使用 newrelic 进行监控,确认我们在应用程序的这两个部分存在问题。我的主要问题是如何分析我的应用程序以确定哪些操作是最大的问题?我可以使用哪些工具?您对我可以做什么/配置数据库以提高性能有任何提示吗?我应该采取什么行动来找出问题所在(下一步)?我知道这些问题非常笼统,但我在这个领域是初级的并且是 Rails 的新手。我相信在你的回答之后会有更多的问题出现;)

【问题讨论】:

  • 您可以从记录 SQL 调用开始。 Rails 反映了完成一个调用所花费的时间。改进需要大量时间的呼叫。一旦你找到了罪魁祸首电话。这个问题会引出更多的问题。偏向 SQL 的问题。
  • 是的,我知道我问了很多事情。但也许有人会在这里描述我可以做的一些步骤。对我来说最大的问题是如何改进我的 mysql 配置。如何找出mysql的问题。

标签: mysql ruby-on-rails performance


【解决方案1】:

首先,数据库的大小是多少,例如有多少表和每个表的平均行数。有了您的问题中提供的基本详细信息,您可以查看以下几个步骤。

关于与移动设备同步数据。第一步应该避免在运行中进行繁重的处理,而是使用后台作业来处理数据并将实际需要发送到移动设备的内容存储在表中。因此,在这种情况下,您将避免多个查询,而是 1-2 个查询应该以最少的处理获取整个数据。

我确定您一定已经应用了索引并且活动模型关系已得到妥善管理。如果您可以发布一些模型和它们之间的基本关系,这实际上会有所帮助。还要简要说明同步是如何完成的以及如何处理 api。

使用基准测试来计算获取数据的时间,并在处理数据时密切关注日志。有一些更好的基准测试可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多