我想监控某些查询执行了多少次。看看下面的 3 个查询,第二个和第三个是写成prepared statement。
SELECT COUNT(*) FROM TABLE1
UPDATE TABLE2 SET `last_parsed` = NOW() WHERE `id` = ?
SELECT 1 FROM TABLE2 WHERE (`last_parsed` IS NULL OR `last_parsed` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY)) AND `id` = ?
mariadb/mysql dbms 是否跟踪每个查询的执行次数?它是否将准备好的语句分组到一个列表中,以便如果id
是 10 或 20,它们都显示在同一类别下?
MySQL 和 MariaDB...
计划 A:开启慢日志。有
long_query_time = 0
。用于pt-query-digest
汇总日志。(这还将提供有关性能不佳的查询的信息。)B计划:开启通用日志。用于
pt-query-digest
汇总日志。注意:这两种技术都使用大量磁盘空间,并且不会自行清理。也就是说,您将需要处理使用的磁盘空间。如果你运行了很长时间。
“摘要”删除了实际的数字和字符串值。即“... WHERE x=2”和“... WHERE x=987”被认为是“相同的”。如果您需要“相同”来包含相同的值,那么您应该计划使用通用日志并进行自己的后处理。