mysql 出现性能问题时该怎么做呢?
首先分析问题发生的原因有哪些呢?
慢查询、高并发、磁盘不足、单表存储数据过多。。。
可以采用常见操作
1、开启慢查询日志
show variables like 'slow_query_log';
打开慢查询的开关
set global slow_query_log=1
然后再日志目录下就可以慢查询的日志了,然后再进一步分析 SQL 的问题
2、查看具体线程,查看是否是线程过多,超过了 mysql 的连接数
show processlist
show full processlist
processlist 命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态帮助识别出有问题的查询语句等。
3、查看当前连接数
SHOW STATUS LIKE 'Thread_%';
4、查看表占用的磁盘情况,判断是否磁盘满了
SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,
CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
FROM information_schema.tables WHERE TABLE_NAME = '实例名';
转载文章时务必注明原作者及原始链接,并注明「发表于 TesterHome 」,并不得对作品进行修改。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。