mysql数据库运行性能检查脚本

只针对mysql 5.6.8以上版本
select version();
use information_schema;
#查询所有数据库参数
show VARIABLES;

#查询数据库最大连接数
show variables like ‘%max_connections%‘;

#查询当前数据库连接数
show full processlist;

#单表记录数超过1000W的数据库查询
select table_schema,table_name,table_rows
from information_schema.tables where table_rows >=10000000 ;

#查看数据库所有索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = ‘uum‘;

#查看某一表索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = ‘uum‘ and a.table_name like ‘%t_sys_base_user%‘;
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = ‘uum‘ and a.table_name =‘t_sys_base_user‘;

#数据库表空间大于1T检查
SELECT table_schema as ‘Database‘,
       table_name,
    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;

#数据文件存放路径
show variables like ‘datadir‘;

#数据库文件占用磁盘空间检查
du -h /data/mysql/data/

#告警 mysql错误日志存放路径
show variables where variable_name = ‘log_error‘;

#mysql数据库监控:
#慢查询日志
show variables WHERE  variable_name = ‘slow_query_log_file‘;
 
#查询写入慢查询日志的时间阈值
show variables WHERE  variable_name = ‘long_query_time‘;
 
#查询哪个sql消耗资源情况
select Id,User,Host,db,Time,Info from information_schema.`PROCESSLIST` where info is not null;

#查询是否锁表
show OPEN TABLES where In_use > 0;

#查看正在等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

#查询所有数据的大小
select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables;

#查看指定数据库的大小
select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where table_schema=‘uum‘;

#查看指定数据库的某个表的大小
select concat(round(sum(data_length/1024/1024),2),‘MB‘) as data from tables where table_schema=‘uum‘ and table_name=‘t_sys_base_user‘;

Linux下命令:free –m    系统实际内存
?used=total-free 即 total=used+free
?实际内存占用:used-buffers-cached 即 total-free-buffers-cached
?实际可用内存:buffers+cached+free
?total 内存总数: 128
?used 已经使用的内存数: 119
?free 空闲的内存数: 8
?shared 当前已经废弃不用,总是0
?buffers Buffer Cache内存数: 1
?cached Page Cache内存数: 22
?-buffers/cache 的内存数:95 (等于第1行的 used - buffers - cached)
?+buffers/cache 的内存数: 32 (等于第1行的 free + buffers + cached)
?SWAP 虚拟内存

Linux下命令:iostat 1 1   IO使用情况
avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
Device: 各磁盘设备的IO统计信息
Device: 以sdX形式显示的设备名称
?tps: 每秒进程下发的IO读、写请求数量
?KB_read/s: 每秒读扇区数量(一扇区为512bytes)
?KB_wrtn/s: 每秒写扇区数量
?KB_read: 取样时间间隔内读扇区总数量
?KB_wrtn: 取样时间间隔内写扇区总数量

Linux下命令:vmstat 2 2000    虚拟内存
Procs(进程):
r: 运行队列中进程数量
b: 等待IO的进程数量
Memory(内存):
swpd: 使用虚拟内存大小
free: 可用内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
Swap:
si: 每秒从交换区写到内存的大小
so: 每秒写入交换区的内存大小
IO:(现在的Linux版本块的大小为1024bytes)
bi: 每秒读取的块数
bo: 每秒写入的块数
 系统:
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
CPU(以百分比表示):
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间)
wa: 等待IO时间
   
Linux下  命令:top      cpu使用情况   
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

原文地址:https://www.cnblogs.com/pdspkj/p/10082294.html

时间: 2024-10-11 05:59:47

mysql数据库运行性能检查脚本的相关文章

CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动

CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.特点: Mysql是开源的,所以你不需要支付额外的费用.Mysql支持大型的数据库.可以处理拥有上千

一:MySQL数据库的性能的影响分析及其优化

MySQL数据库的性能的影响分析及其优化 MySQL数据库的性能的影响 一. 服务器的硬件的限制 二. 服务器所使用的操作系统 三. 服务器的所配置的参数设置不同 四. 数据库存储引擎的选择 五. 数据库的参数配置的不同 六. (重点)数据库的结构的设计和SQL语句 1). 服务器的配置和设置(cpu和可用的内存的大小) 1.网络和I/O资源 2.cpu的主频和核心的数量的选择 (对于密集型的应用应该优先考虑主频高的cpu) (对于并发量大的应用优先考虑的多核的cpu) 3.磁盘的配置和选择 (

django配置使用mysql数据库运行报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'

今天在把django的默认数据库sqlite3切换为MySQL数据库时报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb' 报错原因:django虚拟环境没有安装pymysql模块 解决: 先安装pymysql:pip install pymysql 然后在项目的 init.py 文件中添加以下代码: 把django的默认数据库sqlite3切

mysql的介绍;安装及基本配置;mysql数据库运行必备技能

一.MySQL的介绍 1. 数据库:数据库集中存放位置 1) 常见的数据库类型:关系型(mysql.oracle.SQLserver2008,DB2),树型(windows注册表).非关系型(NoSQL). 2) 关系型数据库对象:数据记录-存->表à存à数据库:表分为数据库,关系表 2. MySQL是开源的关系型数据软件,目前由oracle公司维护,特点是:多线程.多用户.基于C/S架构(客户端/服务器),简单易用.查询速度快,安全可靠. 二.安装及基本配置: 1. 安装 1) 安装依赖ncu

[转]一个备份MySQL数据库的简单Shell脚本

本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了. 我首先要在本文带给你的是完整脚本.后面会对该脚本做说明.我假定你已经知道shell scripting. mysqldump和cronta

一步一步跟我学习hadoop(7)----hadoop连接mysql数据库运行数据读写数据库操作

为了方便 MapReduce 直接訪问关系型数据库(Mysql,Oracle).Hadoop提供了DBInputFormat和DBOutputFormat两个类.通过DBInputFormat类把数据库表数据读入到HDFS,依据DBOutputFormat类把MapReduce产生的结果集导入到数据库表中. 执行MapReduce时候报错:java.io.IOException: com.mysql.jdbc.Driver,通常是因为程序找不到mysql驱动包.解决方法是让每一个tasktrac

mysql性能检查脚本-部分

#!/bin/sh #[email protected] export black='\033[0m' export boldblack='\033[1;0m' export red='\033[31m' export boldred='\033[1;31m' export green='\033[32m' export boldgreen='\033[1;32m' export yellow='\033[33m' export boldyellow='\033[1;33m' export bl

修改MySql数据库名称及附带脚本

一. 在开发流程中,我们会部署多环境,其中数据库结构及数据同步是非常重要的一环,为了便于项目复盘,我们往往会保留数据库一段时间,比如类似这样的方式:db_20200210,db_20200220,db_20200229,db_xxxxxxxx,但MySql是不支持直接修改数据库名称的,我们在从阿里云的RDS生产环境同步到仿真环境就遇到这个问题,每次都是直接这样命名,但项目的配置文件配置的数据库名称是db,避免不了要改配置文件,就是用分布式配置,也是多了一个环节,人为的操作是不能保证不出错误的,所

MySQL数据库inset性能优化

我们在使用中MySQL的时候难免会遇到大批量数据inset的情况,通常最简单的方法就是写一个insert,然后通过循环给变量赋值,批量插入数据库: //save rddform for (int i = 0; i < rddformlist.Count; i++) { string cmdText = "insert into rddform (ID,CreatedTime,ModifiedTime,CreatedBy,ModifiedBy,FormType) values ('"