【发布时间】:2020-08-10 01:30:55
【问题描述】:
我们有一个系统,它由一个基于 Django 构建的 REST 应用程序组成。我们使用的数据库是MYSQL。两台服务器都托管在 AWS 中。
- 目前有数百个 POST 请求来到我们的应用程序。
- 我们在每次点击时将请求正文转储到我们的数据库中。
- 请求的频率很高(每分钟大约 100 个)。
我们的下一个任务是处理我们收到的数据。目前我们已经安排了一个每 1 分钟运行一次的作业。
此作业具有从尚未处理的表中提取数据的逻辑,并根据我们的逻辑更新数据库中的其他表。 同时有大量的查询正在执行。 在数据流入过多的高峰时段,查询被锁定,我们的系统变得不堪重负。有时我们必须终止查询以释放系统。
有哪些方法可以减少查询的周转时间并确保所有查询在更短的时间内执行?我们如何确保查询不会被锁定?
【问题讨论】:
-
附加信息请求。哪种 AWS 型号? RAM 大小、# 核心、MySQL 主机服务器上的任何 SSD 或 NVME 设备?在 pastebin.com 上发布并分享链接。从您的 SSH 登录根目录中,文本结果为:B) SHOW GLOBAL STATUS;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序;为服务器工作负载调优分析提供建议。
-
另一种进行高速摄取的方法。它有一个反馈循环来防止它像你描述的那样绊倒:mysql.rjweb.org/doc.php/staging_table
-
“巨大”只有 100 分钟/分钟,这到底是怎么回事?
标签: mysql performance django-rest-framework load scalability