在调优MySQL数据库和监控数据库时,很多朋友不知道如何下手,怎么来确定是不是参数设置的合理,下面给出一些如何计算指标,来确定数据库参数是否设置合理,希望给大家一些方法,去做MySQL数据库优化,最好对照一下方法,看看自己的生产库配置是否有问题。
 
在show global status;查看各个值。
 
平均查看是否频繁打开表
Opened_tables/Uptime  = xx/s
299304/21062119= 0.0142/s   --每秒不到1次的打开表,说明都是在内存里缓存了,比较理想
 
平均查看是否频繁打开文件
Opened_files/Uptime = xx/s
732146117/21062119= 34.7613/s     --比较频繁 ,可能是如下参数比较小,缓存少导致
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| innodb_open_files | 3000  |
| open_files_limit  | 65535 |
+-------------------+-------+
 
平均查看是否频繁打开表结构
Opened_table_definitions/Uptime = xx/s
32631/21062119= 0.0015/s    --每秒不到1次的打开表结构,说明都是在内存里缓存了,比较理想
 
innodb buffer的预读取是否有用
Innodb_buffer_pool_read_ahead_evicted:预读取被清理的页数量
Innodb_buffer_pool_read_ahead:预读取的页数量
( 1 - Innodb_buffer_pool_read_ahead_evicted / Innodb_buffer_pool_read_ahead ) *100  =  xx%
( 1 - 149/4896862)*100 =  99.9970%   --此百分比很高,说明预读取的页被清理出内存的很少,预读取设置比较理想
 
innodb_read_ahead_threshold:此参数是设置预读取的页数,设置0是关闭预读取功能
 
查看log file大小是否合适
Innodb_log_waits :log file发生等待的次数,说明log buffer太小或者是刷新频繁导致
Innodb_os_log_written :redo日志写的字节数
( innodb_log_file_size * innodb_log_files_in_group / innodb_buffer_pool_size ) *100 =  xx%
(1572864000*2/25769803776)*100 = 12.2070%   --使用率,推荐在 1.2% -- 50%之间
 
innodb_rollback_on_timeout :超时回滚,尽量关闭
 
平均每秒请求读指定行数据的次数
Handler_read_rnd
Handler_read_rnd/Uptime  = xx/s
120716896940/21062119 = 5731.4697/s   --可能需要大量的排序,可能需要大量的扫描表或者没有使用正确索引导致的
 
平均每秒join没有使用索引的次数
Select_full_join /Uptime = xx/s
723959/21062119 = 0.0344/s  --此值不为0 ,需要注意检查是否没有索引
 
join没有使用索引的百分比
( Select_full_join / Com_select ) * 100 = xx%
(723959/27756137450)*100 = 0.0026%
 
平均每秒join时第一个表全表扫描次数
Select_scan /Update = xx/s
18777133984/ 21062119 = 891.5121/s   --全表扫描次数太多
 
平均每秒的连接次数
Connections /uptime = xx/s
11646933/21062119 =  0.5530/s
 
线程创建连接的百分比
Threads_created:线程创建连接的次数
( Threads_created / Connections ) *100 = xx%
(69532/11646933)*100 = 0.5970/s
 
( Max_used_connections / max_connections ) *100 = xx%
(875/5512)*100 =  15.8745%   --表示最多使用了设置的最大连接数的15.8% ,最大连接数设置的比实际大很多,够用

MySQL如何计算重要的指标,来确定配置是否正确的更多相关文章

  1. MySQL+MyCat分库分表 读写分离配置

    一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件.运行在代码应用和MySQL数据库之间的应用. 前身 : cor ...

  2. 【0.2】【MySQL】常用监控指标及监控方法(转)

    [MySQL]常用监控指标及监控方法 转自:https://www.cnblogs.com/wwcom123/p/10759494.html  对之前生产中使用过的MySQL数据库监控指标做个小结. ...

  3. Winserver2012下mysql 5.7解压版(zip)配置安装

    一.安装 下载mysqlzip版本mysql不需要运行可执行文件,解压即可,下载zip版本mysqlmsi版本mysql双击文件即可安装,相对简单,本文不介绍此版本安装 配置环境变量打开环境变量配置页 ...

  4. MySQL Cluster 7.3.5 集群配置实例(入门篇)

    一.环境说明: CentOS6.3(32位) + MySQL Cluster 7.3.5,规划5台机器,资料如下: 节点分布情况: MGM:192.168.137. NDBD1:192.168.137 ...

  5. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)

    按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...

  6. MySQL 5.5.35 单机多实例配置详解

    一.前言 二.概述 三.环境准备 四.安装MySQL 5.5.35 五.新建支持多实例的配置文件(我这里配置的是四个实例) 六.初始化多实例数据库 七.提供管理脚本 mysqld_multi.serv ...

  7. 安装完 MySQL 后必须调整的 10 项配置(转)

    英文原文:10 MySQL settings to tune after installation 译文原文:安装完 MySQL 后必须调整的 10 项配置 当我们被人雇来监测MySQL性能时,人们希 ...

  8. 【MySQL】源码编译安装和配置MySql 5.5.32(单实例)

    [需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数 ...

  9. MySql安装(rpm)和启动配置

    MySql安装(rpm)和启动配置 安装环境: OS:Oracle Linux 5.9 安装步骤: 1.解压MySql安装包 [root@bakdbserver mysql]# tar -xf MyS ...

随机推荐

  1. 牛客网Java刷题知识点之字符流缓冲区、BufferedWriter、BufferedReader、BufferedReader-readLine方法原理、自定义MyBufferedReader-read方法、自定义MyBufferedReader-readLine方法

    不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下 ...

  2. nexus 私服相关的配置

    1 上传到nexus的配置 1 settings.xml <server> <id>releases</id> <username>admin</ ...

  3. stm32 外部中断学习

    今天我们看看STM32的外部中断实验. STM32 供 IO 口使用的中断线只有 16 个,但是 STM32 的 IO 口却远远不止 16 个,那么 STM32 是怎么把 16 个中断线和 IO 口一 ...

  4. 工作采坑札记:3. Spark中es-hadoop插件异常解决

    1. Es-Hadoop异常: org.elasticsearch.hadoop.EsHadoopException: Could not write all entries [615/300864] ...

  5. GitKraken使用教程-基础部分(6)

    4) 放弃本次文件的改动 有些情况下,由于更改代码造成了编译无法通过等错误时,想要放弃这次对文件的修改,将文件还原成上一次提交后的状态,一种简单的恢复文件的方法就是,在Unstaged Files 列 ...

  6. C#继承 多态

    1.继承 允许我们根据一个类来定义另一个类.已有的类被称为的基类(父类),新的类被称为派生类(子类). 单一继承:只能有一个基类,一个基类可以派生出多个派生类,一个类别只可以继承自一个父类. 多重继承 ...

  7. oracle账户密码过期,修改为无限制

    查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users; 查看指定概要文件(如default)的密码有效期设 ...

  8. DotNetty 跨平台的网络通信库(转)

    久以来,.Net开发人员都非常羡慕Java有Netty这样,高效,稳定又易用的网络通信基础框架.终于微软的Azure团队,使用C#实现的Netty的版本发布.不但使用了C#和.Net平台的技术特点,并 ...

  9. 14.C#/.NET编程中的常见异常(持续更新)

    1.Object reference not set to an instance of an object. 未将对象引用(引用)到对象的实例,说白了就是有个对象为null,但是你在用它点出来的各种 ...

  10. [转]Java内存溢出详解及解决方案

    原文地址:http://blog.csdn.net/xianmiao2009/article/details/49254391 内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是 ...