监控mysql情况,并抓取慢查询
1、监控方法:
采用第三方工具spotlight、MONyog、HP sitescope(注:spotlight需在数据库中安装MDA表)
2、查看mysql的内置信息:
show processlist;
explain +sql
show variables; 查看MySQL服务器配置信息;
mysql的配置文件:my.ini
show variables like 'max_connections'; 查询最大连接数
show global status like 'qcache%'; 查询缓存(query cache)
show variables like 'query_cache%'; 关于query_cache的配置
show global status like 'max_used_connections';响应连接
show global status like 'Thread%'; 进程使用情况
3、设置和查询mysql慢查询:
登录以后运行SHOW PROCESSLIST,但是只能看到存在的一些SPID,没有详细的SQL语句。
之后就想着找一个GUI的工具抓Trace,看到其实MySQL提供了一些Log是可以记录执行的SQL以及允许缓慢的SQL。命令如下:
-- 打开sql执行记录功能
set global log_output='TABLE'; -- 输出到表
set global log=ON; -- 打开所有命令执行记录功能general_log, 所有语句: 成功和未成功的.
set global log_slow_queries=ON; -- 打开慢查询sql记录slow_log, 执行成功的: 慢查询语句和未使用索引的语句
set global long_query_time=0.1; -- 慢查询时间限制(秒)
set global log_queries_not_using_indexes=ON; -- 记录未使用索引的sql语句
-- 查询sql执行记录
select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未使用索引的语句
select * from mysql.general_log order by 1; -- 所有语句: 成功和未成功的.
-- 关闭sql执行记录
set global log=OFF;
set global log_slow_queries=OFF;