9

我有一个包含 250 多个表的庞大数据库。在数据库上运行不同类型的查询。由于数据库多年来一直在增长,现在我需要优化数据库和查询。我已经遵循了索引等优化概念。

我的问题是,如何记录在数据库上运行的每个查询的查询及其执行时间?所以我可以分析哪个查询需要多少秒并优化它们。

鉴于我知道 MYSQL 触发器对此非常理想,但我不知道如何为整个数据库编写触发器,以便它将每个查询记录到具有查询执行时间的表中。我希望触发器记录数据库中发生的所有 CRUD 操作。

我怎样才能完成它?

4

2 回答 2

11

使用mysql慢查询日志。这将帮助您仅获取速度较慢的查询,而不是记录/分析所有查询。您只需将参数设置为long_query_time1 或 2 秒。

于 2013-04-23T11:58:26.173 回答
6

你也可以设置long_query_time = 0,你会看到所有的 sql 查询!

于 2018-08-13T18:53:42.930 回答