性能指标
QPS (queries per seconds)
每秒钟查询数量
计算方法:queries / secondes
查询总数➗秒数
TPS (Tranaction pre senconds)
每秒的事务数
计算方法:TPS = (Com_commit + Com_rollback) / seconds
提交次数 + 回滚次数 / 秒数
// 查看 Com_commit 和 Com_rollback 的命令
show global status like 'Com_commit';
show global status like 'Com_rollback';
线程连接数
// 使用最大连接数
show global status like 'Max_used_connections';
// 线程连接数
show global status like 'Threads%';
// 设置的最大连接数
show variables like 'Max_connections';
Query Cache 查询缓存
- 查询缓存用于缓存select查询结果
- 当下接收到相同的查询请求时,不再执行实际查询处理而直接返回结果
- 适用于大量查询数据,很少改变查询结果
开启query cache
-
将
query_cache_size
设置为具体的大小,具体的大小是多少取决于查询的实际情况,但最好设置为 1024 的倍数,参考值 32M。当然这个大小是可以通过返回的性能测试进行调节,找到最适合的值。 -
增加一行:
query_cache_type=0 /1 / 2
-
如果设置1,将会缓存所有的查询结果,除非你 select 语句使用 SQL_NO_CACHE 禁用了查询缓存
- 如果设置2,则只缓存在 select 语句中通过 SQL_CACHE 指定需要缓存的查询
Cache 命中率
Query Cache 命中率计算 Query_cache_hits = (Query_hits/ (Query_hits + Qcache_inserts))* 100%;
锁
Table_locks_waited/Table_locks_immediate
// 值越大代表锁造成的阻塞越严重 Innodb_row_lock_waits innodb
// 行锁,太大可能是间隙锁造成的
主从延时
mysql 慢查询
慢查询其实指的是查询比较慢的 sql 语句
- 执行速度超过定义时间的查询
- 不同的系统定义不同的慢查询指标
开启慢查询
开启慢查询:show_query_log = 1
慢查询日志路径:show_query_log_file=/data/mysql/show.log
(路径是自己定义的,然后需要注意的是,启动mysql数据的用户,需要有写入的权限)
慢查询的时长:long_query_time = 1
设置下方数据,未使用索引的查询也被记录到慢查询的日志中,log_queries_not_using_indexes = 1
使用 mysqldumpslow 生成
mysqldumpslow 命令
-s:是表示按照何种方式排序
-t:是top n的意思,即为返回前面多少条数据
-g:后边可以写一个正则匹配模式,大小写不敏感
mysqldumpslow -s 更多参数
c: 访问技术
l: 锁定时间
r: 返回数据
t: 查询时间
al:平均锁定时间
ar:平均返回记录数
at:平均参数时间
得到返回记录集最多的10个sql