Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql卡顿问题排查

mysql数据库卡顿问题排查过程

作者:Ygv587

介绍了四种排查数据库问题的方法,包括查看SQL运行情况、库和表信息、数据库配置情况以及重启数据库,每种方法都有具体的操作步骤和注意事项,旨在帮助读者解决数据库资源不足、死锁等问题

一、查看后台sql的运行情况

这种能排查后台有进程一直占用资源,导致死锁

1、查看正在执行的事务

SELECT * FROM information_schema.INNODB_TRX

2、查看进程

SHOW PROCESSLIST

3、杀死进程

KILL 123

二、查看库和表信息

这种能排查是资源不够用的情况

1、据库大小和索引大小

-- 据库大小和索引大小
SELECT
TABLE_SCHEMA,
CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),' MB') AS data_size,
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
FROM information_schema.tables
GROUP BY TABLE_SCHEMA
ORDER BY data_size DESC;

2、查询单个库中所有表磁盘占用大小

-- 查询单个库中所有表磁盘占用大小
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_SCHEMA = '你的数据库名';

3、查看数据库中所有表的信息

-- 查看数据库中所有表的信息
SELECT
    CONCAT( table_schema, '.', table_name ) AS 'Table Name',
    table_rows AS 'Number of Rows',
    CONCAT( ROUND( data_length / ( 1024 * 1024 * 1024 ), 6 ), ' G' ) AS 'Data Size',
    CONCAT( ROUND( index_length / ( 1024 * 1024 * 1024 ), 6 ), ' G' ) AS 'Index Size',
    CONCAT( ROUND( ( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 6 ), ' G' ) AS 'Total' 
FROM
    information_schema.TABLES W 
WHERE
    table_schema LIKE '你的数据库名';
    
    ```
    ## 4、单位GB表空间
  ```sql
    # 单位GB表空间
SELECT CONCAT( ROUND( SUM( data_length ) / ( 1024 * 1024 * 1024 ), 6 ), 'GB' ) AS 'Total Data Size' 
FROM information_schema.TABLES 
WHERE table_schema LIKE '你的数据库名';

5、索引空间

 -- 索引空间
SELECT CONCAT( ROUND( SUM( index_length ) / ( 1024 * 1024 * 1024 ), 6 ), ' GB' ) AS 'Total Index Size' 
FROM information_schema.TABLES 
WHERE table_schema LIKE '你的数据库名'; 

三、查看数据库的配置情况

这种能排查数据库是默认配置导致的资源没跑满

SHOW VARIABLES LIKE '%connect%';

四、重启数据库

万物回归大法

1、命令

 service mysql start
 service mysql stop
 service mysql restart 

2、报错

如果遇到pid报错,那个文件出现问题删除那个

3、报错2

可能是文件之间的权限不匹配,例如改完一个配置文件,重新上传到的,可能是root权限,但是其他的是有的是777,有的是644,导致数据库起不来。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文