Mysql之日常运维命令总结

1、连接MySQL数据库

mysql -uroot -p'password'
mysql -uroot -p'password' -h 127.0.0.1 -P 3306
mysql -uroot -p'password' -S /path/to/mysql.sock

2、查看当前数据库中的会话状态

show processlist;

3、查看当前数据库中的活动会话(排除掉空闲Sleep状态的会话)

select * from information_schema.processlist where command <> 'Sleep';--8.0以后版本建议使用performance_schema:
select * from performance_schema.processlist where command <> 'Sleep';--排除掉自己的会话连接
select * from information_schema.processlist where command <> 'Sleep' and id <> connection_id();select * from performance_schema.processlist where command <> 'Sleep' and id <> connection_id();--也可以通过其他条件来排查掉自己不想要的会话信息:如user in  或者 db in ,host等查询条件来过滤。

4、查看数据库的总大小

--数据库总大小
select round(sum(data_length+index_length)/1024/1024/1024,2) as 'DBSIZE_GB' from information_schema.tables;

5、查看数据库中各个库的大小合计

--数据库大小信息:
select table_schema,round(sum(data_length+index_length)/1024/1024/1024,3) as 'SIZE_GB' from information_schema.tables where table_schema not in ('sys','mysql','information_schema','performance_schema') group by table_schema ;

6、查看数据库中的TOP 30大表信息

--Top 30大表信息:
select table_schema,table_name,round((data_length+index_length)/1024/1024,2) as 'SIZE_MB',table_rows,engine from information_schema.tables where table_schema not in ('sys','mysql','information_schema','performance_schema') order by 3 desc limit 30 ;

7、查看表和索引的统计信息:

--表统计信息:
select * from mysql.innodb_table_stats where database_name='db_name' and table_name='table_name';--索引统计信息:
select * from mysql.innodb_index_stats where database_name='' and table_name='' and index_name='idx_name';

8、查询锁等待时持续间大于20秒的SQL信息

  SELECT trx_mysql_thread_id AS PROCESSLIST_ID,NOW(),TRX_STARTED,TO_SECONDS(now())-TO_SECONDS(trx_started) AS TRX_LAST_TIME ,USER,HOST,DB,TRX_QUERY
FROM INFORMATION_SCHEMA.INNODB_TRX trx
JOIN sys.innodb_lock_waits lw ON trx.trx_mysql_thread_id=lw.waiting_pid
JOIN INFORMATION_SCHEMA.processlist pcl ON trx.trx_mysql_thread_id=pcl.id
WHERE trx_mysql_thread_id != connection_id()AND TO_SECONDS(now())-TO_SECONDS(trx_started) >= 20 ;

9、 查询MySQL锁等待表的详细信息

-- sys库锁等待表:
select * from sys.innodb_lock_waits\G

10、 查询长事务SQL

--长事务(包含未关闭的事务)
SELECT thr.processlist_id AS mysql_thread_id,concat(PROCESSLIST_USER,'@',PROCESSLIST_HOST) User,Command,FORMAT_PICO_TIME(trx.timer_wait) AS trx_duration,current_statement as `latest_statement`FROM performance_schema.events_transactions_current trxINNER JOIN performance_schema.threads thr USING (thread_id)LEFT JOIN sys.processlist p ON p.thd_id=thread_idWHERE thr.processlist_id IS NOT NULL AND PROCESSLIST_USER IS NOT NULL AND trx.state = 'ACTIVE'GROUP BY thread_id, timer_wait ORDER BY TIMER_WAIT DESC LIMIT 10;

11、 查看当前DDL执行的进度

use performance_schema;
select * from setup_instruments where name like 'stage/innodb/alter%';
select * from setup_consumers where name like '%stages%';--如果上面查询结果为NO,则需要做如下配置:
update set_instrucments set enabled = 'YES' where name like 'stage/innodb/alter%';
update set_consumers set enabled = 'YES' where name like '%stages%';-- 查询DDL执行的进度:
select stmt.sql_text,stage.event_name,concat(work_completed, '/', work_estimated) as progress,concat(round(100 * work_completed / work_estimated, 2), ' %') as processing_pct,sys.format_time(stage.timer_wait) as time_costs,concat(round((stage.timer_end - stmt.timer_start) / 1e12 *(work_estimated - work_completed) / work_completed,2),' s') as remaining_secondsfrom performance_schema.events_stages_current     stage,performance_schema.events_statements_current stmtwhere stage.thread_id = stmt.thread_idand stage.nesting_event_id = stmt.event_id\G

12、 执行次数最多的TOP 10 SQL

--执行次数前10 SQL
SELECT QUERY_SAMPLE_TEXT,COUNT_STAR,FIRST_SEEN,LAST_SEEN FROM events_statements_summary_by_digest ORDER BY COUNT_STAR DESC LIMIT 10;

13、平均响应时间最长的TOP 10 SQL

--平均响应时间TOP 10 SQL
SELECT QUERY_SAMPLE_TEXT,AVG_TIMER_WAIT FROM events_statements_summary_by_digest ORDER BY AVG_TIMER_WAIT DESC limit 10;

14、 排序次数最多的TOP 10 SQL

--排序此时最多TOP 10 SQL
SELECT QUERY_SAMPLE_TEXT,SUM_SORT_ROWS FROM events_statements_summary_by_digest ORDER BY SUM_SORT_ROWS DESC LIMIT 10;

15、 扫描记录数最多的 TOP 10 SQL

--扫描行最多的 TOP 10 SQL 
SELECT QUERY_SAMPLE_TEXT,SUM_ROWS_EXAMINED FROM events_statements_summary_by_digest ORDER BY SUM_ROWS_EXAMINED DESC LIMIT 10;

16、使用临时表最多的TOP 10 SQL

--使用临时表最多的TOP 10 SQL
SELECT QUERY_SAMPLE_TEXT,SUM_CREATED_TMP_TABLES,SUM_CREATED_TMP_DISK_TABLES FROM events_statements_summary_by_digest ORDER BY SUM_CREATED_TMP_TABLES DESC LIMIT 10;

17、 查询从未使用过的索引

--从未使用过的索引:未使用索引建议直接删除,多余索引如不使用会影响增删改性能,且索引占用磁盘空间。
select * from schema_unused_indexes where object_schema not in ('performance_schema');

18、 查询冗余索引

--冗余索引建议删除
select * from schema_redundant_indexes;

19、 查询数据库中没有主键的表

--查询所有无主键表:
SELECT A.table_schema, A.table_name FROM information_schema.tables AS A LEFT JOIN (SELECT table_schema, table_name FROM information_schema.statistics WHERE index_name = 'PRIMARY') AS B ON A.table_schema = B.table_schema AND A.table_name = B.table_name WHERE A.table_schema NOT IN ('information_schema' , 'mysql','performance_schema', 'sys') AND A.table_type='BASE TABLE' AND B.table_name IS NULL;

20、 查询非InnoDB表

--非innodb表
SELECT table_schema,table_name,engine FROM information_schema.tables where table_schema not in ('mysql','sys','information_schema','performance_schema') and engine!='InnoDB';

21、查询从库状态信息(主从状态,延迟)

--主从状态: (Slave_IO_Running和Slave_SQL_Running 都为YES 且Seconds_Behind_Master 为0)
show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.120.184.82Master_User: repuserMaster_Port: 3306Connect_Retry: 5Master_Log_File: mysql-bin.001026Read_Master_Log_Pos: 182832Relay_Log_File: mysql-relay-bin.002069Relay_Log_Pos: 183005Relay_Master_Log_File: mysql-bin.001026Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 182832Relay_Log_Space: 183299Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 330682Master_UUID: d2ba61a0-5b46-11ee-b627-005056b51543Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: d2ba61a0-5b46-11ee-b627-005056b51543:12832492-14068377Executed_Gtid_Set: a5bf5226-5b48-11ee-ae63-005056b53ab2:1,
d2ba61a0-5b46-11ee-b627-005056b51543:1-14068377Auto_Position: 1Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: 

22、 查看慢日志信息:是否开启及慢日志的位置

--确认慢日志是否开启:slow_query_log为ON 及慢日志位置:/data/mysql8036/3306/logs/slow.log
root@localhost:sys 04:14:14 >show global variables like 'slow%';
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| slow_launch_time    | 2                                  |
| slow_query_log      | ON                                 |
| slow_query_log_file | /data/mysql8036/3306/logs/slow.log |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)--确认慢日志记录的时间阈值:
root@localhost:sys 04:14:16 >show global variables like 'long%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

总结
以上这些命令是MySQL DBA在日常工作中经常使用的,可以帮助DBA监控数据库状态、管理用户权限、优化查询性能、查找关键信息等。在执行这些操作时,DBA需要根据实际情况和数据库的配置来做适当调整。

  • 系统参数performance_schema一定要配置为ON
  • 针对的是MySQL8.0版本
  • 一些SQL最好带上库名

本文转载至

https://www.modb.pro/db/1785176462622003200

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742753.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于PSO粒子群优化的CNN-GRU的时间序列回归预测matlab仿真

1.算法运行效果图预览 (完整程序运行后无水印)2.算法运行软件版本 matlab2022a3.部分核心程序for i=1:Iterifor j=1:Npeoprng(i+j)if func_obj(x1(j,:))<pbest1(j)p1(j,:) = x1(j,:);%变量pbest1(j) = func_obj(x1(j,:));endif pbest1(j)<gbest1g1 = p1(j,:);%变量…

瓦片地图

1. 预备知识 1.1 参考椭球 地球表面是一个凸凹不平的表面,而对于地球测量而言,地表是一个无法用数学公式表达的曲面,这样的曲面不能作为测量和制图的基准面。假想一个扁率极小的椭圆,绕地球体短轴旋转所形成的规则椭球体称之为地球椭球体。 地球椭球体与地球形体非常接近,…

Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯

巴图自动化PN转Modbus模块简化Profinet与Modbus设备间通信,减轻编程工作。通过使用巴图自动化Profinet转Modbus模块(BT-MDPN10),用户无需编写复杂的通信程序或进行繁琐的协议转换,只需简单配置通讯参数。巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modb…

【服务器搭建】服务器临时授权

#蜜罐 #钓鱼网站场景 服务器上的业务并不想对所有人开放,只有当对方提供IP信息后才单独对相应的IP进行授权。像这种小范围的IP授权,如果能获取到对方IP,则可以通过提前写防火墙策略,限制IP访问范围。但如果IP是动态的,比如对方的IP是互联网IP,这时就只能先等对方报自己的…

提质增效,还看拖拽式报表设计器

如果想实现提质、降本、增效等发展目标,可以随时来了解拖拽式报表设计器的相关优势特点。随着业务量的增大,传统的报表已经无法满足发展需要了,借助于低代码技术平台、拖拽式报表设计器的优势特点,可以助力摆脱信息孤岛、部门之间协作沟通不畅的弊端,实现高效增值的市场价…

K8S标签与标签选择器

目录一、标签1、简介2、为什么需要标签3、标签命名规范3.1、标签名3.2、标签的value4、标签的基本操作4.1、创建标签4.1.1、资源清单方式4.1.2、命令行方式4.2、查看标签4.2.1、查看刚才打标的两个pod4.2.2、通过标签过滤查询4.2.3、将标签显示在输出结果中4.3、添加标签4.3.1、…

环境配置

依赖库安装(opencv,ffmpeg,accllite,presentagent)+摄像头测试+i2c测试配置c++环境下载安装第三方依赖(opencv,ffmpeg,accllite,presentagent) 配置摄像头 配置i2c 下载测试代码并检验准备安装 #下载测试代码 cd ${HOME} #注意是主目录,不是/home git clone https:…

自己理解的TCP三次握手

### TCP 三次握手过程是怎样的? TCP的建立连接是通过三次握手来进行的。三次握手的过程如下图:说实话这个很好理解,我称之为N字型 首先我们理解到建立连接是一个虚的概念了对吧?那么我们来设计一个可靠的TCP,首先建立连接是必须的吧?相当于我们打电话,总要先说一句喂---wei…

EtherCAT总线耦合器:在欧姆龙Sysmac Studio软件里的配置步骤

EtherCAT总线适配器XD7000作为网络接口,连接主控制器(如PLC)和其他EtherCAT设备,实现实时、高效的数据交换。通过EtherCAT总线耦合器,用户能够将所有设备连接在一个主网络上,并通过一个以太网端口进行控制。EtherCAT总线耦合器能够自动检测和确定不同的设备连接方式,从而…

总结系统IO和标准IO的区别

Linux系统IO:除了open函数之外,其它的函数第一个形参都是文件描述符。对文件进行IO操作:写入和读取操作是没有缓存操作。write因为没有缓存的操作,如果IO操作的数据很多的情况下是不建议使用,特别是那种多媒体数据文本文档数据。因为没有缓存的操作,如果IO操作的数据不多的…

STM32驱动-DHT11(温湿度模块)

STM32驱动-DHT11(温湿度模块) 一、DHT11模块简介 DHT11是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片…