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

 更新时间:2025年02月28日 08:54:33   作者: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,导致数据库起不来。

总结

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

相关文章

  • MySQL 的 21 个规范、优化最佳实践!

    MySQL 的 21 个规范、优化最佳实践!

    每一个好习惯都是一笔财富,本文分 SQL 后悔药,SQL 性能优化,SQL 规范优雅三个方向,分享写 SQL 的 21 个好习惯和最佳实践
    2020-12-12
  • 将SQL查询结果保存为新表的方法实例

    将SQL查询结果保存为新表的方法实例

    有时我们要把查询的结果保存到新表里,创建新表,查询,插入显得十分麻烦,下面这篇文章主要给大家介绍了关于将SQL查询结果保存为新表的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 详解MySQL如何交换两列值数据

    详解MySQL如何交换两列值数据

    最近遇到了需要将表里的两列值进行互换,原因是存库时值存放反了,在编码语言中,我们一般可以通过定义一个临时变量c,将b赋值给c,a赋值给b,c赋值给a就能实现a和b的值互换,那么,在mysql中,非储存过程的sql语句,没有定义变量的过程,如何实现呢,接下来由小编给大家介绍一下
    2024-01-01
  • 解析Mysql临时表及特点

    解析Mysql临时表及特点

    本篇文章是对Mysql中的临时表以及特点进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 详解MySQL集群搭建

    详解MySQL集群搭建

    本文将搭建一个最简化的MySQL Cluster系统,配置方法中的所有命令都是以root账户运行。
    2015-09-09
  • mysql 5.7安装 MySQL 服务无法启动但是服务没有报告任何错误

    mysql 5.7安装 MySQL 服务无法启动但是服务没有报告任何错误

    这篇文章主要介绍了mysql 5.7安装 MySQL 服务无法启动但是服务没有报告任何错误的相关资料,需要的朋友可以参考下
    2017-04-04
  • mysql 8.0.14 安装配置方法图文教程

    mysql 8.0.14 安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.14 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • 数据库账号密码加密详解及实例

    数据库账号密码加密详解及实例

    这篇文章主要介绍了数据库账号密码加密详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • 在Mysql环境下对数据进行增删改查的操作方法

    在Mysql环境下对数据进行增删改查的操作方法

    本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并举例说明了每种操作的具体用法,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • MySQL中进行数据的加密和解密存储的操作方法

    MySQL中进行数据的加密和解密存储的操作方法

    在MySQL中,我们可以使用对称加密算法和非对称加密算法对数据进行加密和解密存储,通过合理选择加密算法和密钥管理,可以有效提高数据的安全性,防止敏感信息的泄露和非法获取,下面给大家分享MySQL中进行数据的加密和解密存储方法,感兴趣的朋友一起看看吧
    2024-05-05

最新评论