2014-10-20 87 views
0

在开始时我想说我不擅长这个领域,并且描述所有细微差别是有问题的。我使用的是使用Mysql数据库的Rails应用程序。我们的数据库增长了,现在我们在性能方面遇到严重问题。在我们的应用程序中,我们有两个功能(例如与手机同步)处理大量数据,并导致数据库挂起。我们使用newrelic进行监控,确认我们在应用程序的这两个部分存在问题。我的主要问题是如何剖析我的应用程序以找出哪些操作会造成最大的问题?我可以使用哪些工具?你有什么建议可以做什么/配置数据库来提高性能?我应该采取什么行动来找出问题所在(下一小步)?我知道这些问题非常普遍,但我在这个领域中属于初级阶段,而且在轨道领域是新的。我相信你的答案后会出现更多的问题;)找出数据库问题

+0

您可以从记录SQL调用开始。 Rails反映了完成通话所花费的时间。改善需要花费很多时间的呼叫。一旦你有罪魁祸首位于。这个问题会导致更多的问题。问题偏向于SQL。 – ch4nd4n 2014-10-20 08:54:54

+0

是的,我知道我问过很多事情。但也许有人会在这里描述我所能做的一些步骤。对我来说最大的问题是我如何改进我的mysql配置。如何找出mysql的问题。 – user2239655 2014-10-20 09:20:52

回答

0

首先,db的大小是什么,比如每个表有多少个表和平均的行数。在您的问题中提供基本的详细信息后,您可以查看几个步骤。

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

我相信你必须有应用索引和主动模型关系已妥善管理。如果你可以发布一些模型和它们之间的基本关系,它确实会有所帮助。还简要介绍了如何完成同步和处理apis。

使用基准测试来计算处理数据时提取数据和监视日志的时间。有一些更好的基准测试可用。