mysql - 获取每个 MySQL 查询的成本
问题描述
我们有一个由 MySQL 支持的 Web 应用程序,每秒可处理数百个查询。我正在寻找一种方法来衡量生产中每个查询的“成本”。我在想象一些选项,对于每个查询,MySQL 返回查询结果以及执行该查询的 CPU 和 I/O 成本。
最终目标是按端点(例如“/search”)和登录的用户 ID 汇总这些成本。这样,当我们遇到站点问题时,我们可以快速查看是否有特定的操作或用户 ID 占用了大量 MySQL 资源。
接近但不完全(AFAICT):
这个答案很接近:https ://stackoverflow.com/a/12880997/163832
它描述了精度和准确性问题,EXPLAIN
并推荐了一种替代方案,该替代方案衡量实际发生的事情,而不是估计将发生的事情。
对于我的用例,替代方案似乎更好,但仍然存在问题:
- 我查看了可用的统计信息,但找不到测量 CPU 或 I/O 的统计信息。
- 我不认为我能负担得起
FLUSH STATUS
,然后SHOW SESSION STATUS ...
在每个查询上。 - 当许多查询同时运行时,这不起作用。
解决方案
推荐阅读
- google-sheets - Countif 区分大小写的谷歌表格
- javascript - 尝试添加属性时,Javascript Map Array Object会更改原始数组
- traefik - Traefik - 测试Referer的中间件
- html - object-fit 在 flexbox 容器中不起作用
- networking - 在 Quoted Printable 中编码随机位文件的百分比增加是多少?
- javascript - React 中的搜索和分页存在错误
- html - 文本未以 HTML 页面为中心
- r - 视图函数错误:.External2(C_dataviewer, x, title) : 无法启动数据查看器
- java - BigInteger 在 spring mongo 中保存为 String
- android - 无法连接到 Azure Devops Maven 存储库