MySQL查询数据库响应时间可以通过查询状态变量来获取。以下是一些关键的状态变量和查询它们的示例SQL命令:
Queries
- 自数据库启动以来执行的查询总数。
SHOW GLOBAL STATUS LIKE 'Queries';
Uptime
- 数据库运行的总时间(秒)。
SHOW GLOBAL STATUS LIKE 'Uptime';
Threads_running
- 当前运行的线程数。
SHOW GLOBAL STATUS LIKE 'Threads_running';
Slow_queries
- 慢查询的数量。
SHOW GLOBAL STATUS LIKE 'Slow_queries';
Innodb_rows_read
- 自数据库启动以来InnoDB表读取的行数。
SHOW GLOBAL STATUS LIKE 'Innodb_rows_read';
Innodb_rows_inserted
- 自数据库启动以来InnoDB表插入的行数。
SHOW GLOBAL STATUS LIKE 'Innodb_rows_inserted';
Innodb_rows_updated
- 自数据库启动以来InnoDB表更新的行数。
SHOW GLOBAL STATUS LIKE 'Innodb_rows_updated';
Innodb_rows_deleted
- 自数据库启动以来InnoDB表删除的行数。
SHOW GLOBAL STATUS LIKE 'Innodb_rows_deleted';
通过这些查询,你可以获取到数据库的运行时间、查询总数、运行线程数、慢查询数量以及InnoDB表的读写行数,从而间接了解数据库的响应时间。
记得,要获取更详细的查询执行时间分布,你可能需要启用慢查询日志来捕获执行时间超过设定阈值的查询。例如:
SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 10; -- 设置慢查询的阈值为10秒
慢查询日志开启后,任何执行时间超过long_query_time
设定值的查询都会被记录到指定的慢查询日志文件中。