我有一个包含 250 多个表的庞大数据库。在数据库上运行不同类型的查询。由于数据库多年来一直在增长,现在我需要优化数据库和查询。我已经遵循了索引等优化概念。
我的问题是,如何记录在数据库上运行的每个查询的查询及其执行时间?所以我可以分析哪个查询需要多少秒并优化它们。
鉴于我知道 MYSQL 触发器对此非常理想,但我不知道如何为整个数据库编写触发器,以便它将每个查询记录到具有查询执行时间的表中。我希望触发器记录数据库中发生的所有 CRUD 操作。
我怎样才能完成它?
使用mysql慢查询日志。这将帮助您仅获取速度较慢的查询,而不是记录/分析所有查询。您只需将参数设置为long_query_time
1 或 2 秒。
你也可以设置long_query_time = 0
,你会看到所有的 sql 查询!