一开始我想说我不是这个领域的专家,描述所有的细微差别是有问题的。我在使用Mysql数据库的Rails应用程序上工作。我们的数据库已经发展,现在我们遇到了严重的性能问题。在我们的应用程序中,我们有两个功能(例如与移动设备同步),它处理大量数据并导致数据库挂起。我们使用newrelic进行监控,确认我们在应用程序的这两个部分存在问题。我的主要问题是如何配置我的应用程序以确定哪些操作成为最大的问题?我可以使用哪些工具?您是否有任何提示我可以做什么/配置数据库以提高性能?我应该采取什么行动来找出问题所在(下一小步)?我知道那些问题很普遍,但我在这个领域是初级的,并且在rails中是新的。我相信在你的答案之后会出现更多问题;)
答案 0 :(得分:0)
首先,db的大小是多少,例如每个表的行数和平均行数。根据您的问题中提供的基本详细信息,您可以在此处查看几个步骤。
关于与移动设备的数据同步。第一步应该是避免繁重的处理,而是使用后台作业来处理数据并在表中存储实际需要发送到移动设备的内容。因此,在这种情况下,您将避免多次查询,而1-2次查询应该以最少的处理来获取整个数据。
我确信您必须已应用索引并且已正确管理活动模型关系。如果您可以发布一些模型和它们之间的基本关系,这实际上会有所帮助。还简要说明了如何进行同步以及如何处理apis。
使用基准测试来计算获取数据的时间,并在处理数据时密切关注日志。有一些更好的基准测试可用。