上一篇 <<<MySQL的MVCC多版本控制原理
下一篇 >>>
- 非交互式超时时间,如 JDBC 程序
show global variables like 'wait_timeout';
- 交互式超时时间,如数据库工具
show global variables like 'interactive_timeout';
- 连接数配置,太小会导致Too many connections
show variables like '%max_connections%';
- 设定所接受的包的大小:
show variables like '%max_allowed_packet%';
根据情形不同,其缺省值可能是1M或者4M。
最大值是1G(1073741824),如果设置超过1G,查看最终生效结果也只有1G。
- 数据文件存储地方
show variables like 'datadir';
- 查看数据库行数等状态
show table status;
- 查看表上加过的锁
show open tables;
- 删除表锁
unlock tables;
- 隔离级别查看
select @@tx_isolation;
- 查询时的缓存设置:
show variables like '%query_cache%';
- InnoDB的buffer pool配置
show status like '%innodb_buffer_pool%'
buffer pool建议配置50-60%左右即可
- InnoDB每页的大小
show variables like 'innodb_page_size'; 16384/1024=16kb;
- 慢查询定位
show variables like '%query%';
- filesort单双路排序阈值设置,默认1024,超出则使用双路排序
show variables like '%max_length_for_sort_data%';
- 数据库连接池使用情况
show global status like 'Thread%';
Threads_cached--- 服务器端缓存连接;
Threads_connected ---当前打开的连接数
Threads_created ---创建的线程数
Threads_running---正在运行的线程
- show processlist 查询当前mysql服务器接收所有的连接信息
sleep:线程正在等待客户端发送新的请求;
query:线程正在执行查询或者正在将结果发送给客户端;
locked:在mysql服务器层,该线程正在等待表锁。在存储引擎级别实现的锁,例如InnoDB的行锁,并不会体现在线程状态中。对于MyISAM来说这是一个比较典型的状态。
analyzing and statistics:线程正在收集存储引擎的统计信息,并生成查询的执行计划;
copying to tmp table:线程在执行查询,并且将其结果集复制到一个临时表中,这种状态一般要么是做group by操作,要么是文件排序操作,或者union操作。如果这个状态后面还有on disk标记,那表示mysql正在将一个内存临时表放到磁盘上。
sorting Result:线程正在对结果集进行排序。
sending data:线程可能在多个状态间传送数据,或者在生成结果集,或者在想客户端返回数据。
网友评论