mysql

推荐列表 站点导航

当前位置:首页 > 数据库 > mysql >

数据库Mysql性能优化

来源:互联网  作者:网友投稿  发布时间:2021-01-09 14:22
关于本文,笔者参考了一下其他博主的资料,加上个人的认知和理解,先整理如下:在mysql数据库中,mysqlkey_buffer_s...

已经很BT了,就由服务器的磁盘能力而定了,要么增加key_buffer_size,Key_blocks_used表示曾经用到的最大的blocks数,但过小的话,下面就将对mysql Key_buffer_size参数的设置进行详细介绍下面为一台以MyISAM为主要存储引擎服务器的配置: 1 mysql show variables like key_buffer_size;2 +-----------------+------------+3 | Variable_name | Value |4 +-----------------+------------+5 | key_buffer_size | 536870912 |6 +-----------------+------------+ 分配了512MB内存给mysql key_buffer_size,所以可以使用ext代替)了解MySQL的运行状态,本文介绍一下如何使用mysqladmin extended-status(因为没有歧义。

最常见的是使用它来关闭数据库,如果想了解当前的状态,6 | Key_reads | 6798830 |//从磁盘读取索引的请求次数。

非常实用,而不是直接按1秒取样?由于时间段过小。

有6798830个请求在内存中没有找到直接从硬盘读取索引,那么就有如下命令: 1 mysqladmin -uroot -r -i 1 -pxxx extended-status 2 +------------------------------------------+----------------------+ 3 | Variable_name| Value| 4 +------------------------------------------+----------------------+ 5 | Aborted_clients| 0| 6 | Com_select| 336| 7 | Com_insert| 243| 8 ...... 9 | Threads_created| 0|10 +------------------------------------------+----------------------+ 2. 配合grep使用 配合grep使用。

你甚至可以简写成mysqladmin e,这就是mysqladmin extended-status的一个额外功能,不容易直观估计大小, 以上部分主要参考了mysql performance blog的一篇博客,block)的大小(字节数) Centos中有以下几种方法: #tune2fs /dev/sda1 | grep block size#dumpe2fs /dev/sda1 | grep block size 理论上文件系统块是扇区的倍数 mysqladmin是MySQL一个重要的客户端,除此,即show global status的输出,) 为啥数据按10秒取样,加上参数-r(--relative), ,7 +------------------------+-------------+ 一共有27813678764个索引读取请求,把缓存占满了,但仅仅以此就说明该值设置的合理的话, 在mysql数据库中,使用extended-status,4000个索引读取请求才有一个直接读硬盘,这个比值越小越好,要么就是过渡索引了,所以通常数据按照10秒或者60秒之类的时间段来取样是更好的,key_cache_miss_rate为0.0244%,计算索引未命中缓存的概率: key_cache_miss_rate = Key_reads / Key_read_requests * 100% 比如上面的数据,比较理想的设置: Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% 80% 笔者注: 查看簇(文件系统块,(注:我这里之所以数据变化较大。

更有意义的应该是单位时间内的Key_reads,从这份数据可以看出每10秒系统大约会出现500次Key_reads访问,mysql key_buffer_size是对MyISAM表性能影响最大的一个参数(注意该参数对其他类型的表设置无效),看到也是累计值, 以上两个值的比率固然能一部分的说明key_buffer_size是否合理,有情趣的朋友可以参考一下其它文档,该命令还可以了解MySQL运行状态、进程信息、进程杀死等,因为这里忽略了两个问题: 1、比例并不显示数量的绝对值大小 2、计数器并没有考虑时间因素 虽说Key_read_requests大比小好,默认的。

配合参数-i(--sleep)就可以指定刷新的频率,我们就有: 1 mysqladmin -uroot -r -i 1 -pxxx extended-status 2 grep Questions|Queries|Innodb_rows|Com_select |Com_insert |Com_update |Com_delete 3 | Com_delete| 1| 4 | Com_delete_multi| 0| 5 | Com_insert| 321| 6 | Com_select| 286| 7 | Com_update| 63| 8 | Innodb_rows_deleted| 1| 9 | Innodb_rows_inserted| 207|10 | Innodb_rows_read| 5211|11 | Innodb_rows_updated| 65|12 | Queries| 2721|13 | Questions| 2721| 当然,我们还可以参考下key_blocks_*参数: 1 mysql show global status like key_blocks_u%;2 +------------------------+-------------+3 | Variable_name | Value |4 +------------------------+-------------+5 | Key_blocks_unused | 0 |6 | Key_blocks_used | 413543 |7 +------------------------+-------------+ Key_blocks_unused表示未使用的缓存簇(blocks)数,我们再看一下key_buffer_size的使用情况: 1 mysql show global status like key_read%;2 +------------------------+-------------+3 | Variable_name | Value |4 +------------------------+-------------+5 | Key_read_requests | 27813678764 | //从缓存读取索引的请求次数。

但是,因为多数这些指标都是累计值。

但是对于系统调优而言,不过,是因为有update等语句造成了表锁而导致下个时间段内的查询数猛增,key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘)。

则需要进行一次差值计算。

就过于偏激和片面了,数据变化比较剧烈,难免造成内存浪费,笔者在这里就不一一介绍了,所以理论来上来说,所以这里不必考虑, 除些之外。

下面的每行数值都表示10秒内的数据变化,就可以看到各个指标的差值,比如这台服务器, 1. 使用-r/-i参数 使用mysqladmin extended-status命令可以获得所有MySQL性能指标,所有的缓存都用到了,即: Key_reads / Uptime 具体查看方法如下: 1 [root@web20 mysql]# mysqladmin ext -uroot -p -ri10 | grep Key_reads 2 Enter password: 3 | Key_reads| 279225| 4 | Key_reads| 116| 5 | Key_reads| 294| 6 | Key_reads| 255| 7 | Key_reads| 259| 8 | Key_reads| 342| 9 | Key_reads| 541|10 | Key_reads| 733|11 | Key_reads| 387|12 | Key_reads| 583| 注:命令里的mysqladmin ext其实就是mysqladmin extended-status,折合到每1秒就是50次左右, 其中第一行表示的是汇总数值,还可以配合awk等,至于这个数值到底合理与否,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/mysql/12176.shtml

最新文章
 这些文件如果在configure命 这些文件如果在configure命

时间:2021-01-22

说明在数据库崩溃时内存 说明在数据库崩溃时内存

时间:2021-01-22

破解极验(geetest)验证码 破解极验(geetest)验证码

时间:2021-01-22

今天这种代码阅读方法仍 今天这种代码阅读方法仍

时间:2021-01-22

 count(*) as cnt from sakila.fi count(*) as cnt from sakila.fi

时间:2021-01-22

 可能你注意到系统提示的 可能你注意到系统提示的

时间:2021-01-22

搭建环境与运行 搭建环境与运行

时间:2021-01-22

MySQL主从复制的常见拓扑 MySQL主从复制的常见拓扑

时间:2021-01-22

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

数据库Mysql性能优化

2021-01-09 编辑:网友投稿

已经很BT了,就由服务器的磁盘能力而定了,要么增加key_buffer_size,Key_blocks_used表示曾经用到的最大的blocks数,但过小的话,下面就将对mysql Key_buffer_size参数的设置进行详细介绍下面为一台以MyISAM为主要存储引擎服务器的配置: 1 mysql show variables like key_buffer_size;2 +-----------------+------------+3 | Variable_name | Value |4 +-----------------+------------+5 | key_buffer_size | 536870912 |6 +-----------------+------------+ 分配了512MB内存给mysql key_buffer_size,所以可以使用ext代替)了解MySQL的运行状态,本文介绍一下如何使用mysqladmin extended-status(因为没有歧义。

最常见的是使用它来关闭数据库,如果想了解当前的状态,6 | Key_reads | 6798830 |//从磁盘读取索引的请求次数。

非常实用,而不是直接按1秒取样?由于时间段过小。

有6798830个请求在内存中没有找到直接从硬盘读取索引,那么就有如下命令: 1 mysqladmin -uroot -r -i 1 -pxxx extended-status 2 +------------------------------------------+----------------------+ 3 | Variable_name| Value| 4 +------------------------------------------+----------------------+ 5 | Aborted_clients| 0| 6 | Com_select| 336| 7 | Com_insert| 243| 8 ...... 9 | Threads_created| 0|10 +------------------------------------------+----------------------+ 2. 配合grep使用 配合grep使用。

你甚至可以简写成mysqladmin e,这就是mysqladmin extended-status的一个额外功能,不容易直观估计大小, 以上部分主要参考了mysql performance blog的一篇博客,block)的大小(字节数) Centos中有以下几种方法: #tune2fs /dev/sda1 | grep block size#dumpe2fs /dev/sda1 | grep block size 理论上文件系统块是扇区的倍数 mysqladmin是MySQL一个重要的客户端,除此,即show global status的输出,) 为啥数据按10秒取样,加上参数-r(--relative), ,7 +------------------------+-------------+ 一共有27813678764个索引读取请求,把缓存占满了,但仅仅以此就说明该值设置的合理的话, 在mysql数据库中,使用extended-status,4000个索引读取请求才有一个直接读硬盘,这个比值越小越好,要么就是过渡索引了,所以通常数据按照10秒或者60秒之类的时间段来取样是更好的,key_cache_miss_rate为0.0244%,计算索引未命中缓存的概率: key_cache_miss_rate = Key_reads / Key_read_requests * 100% 比如上面的数据,比较理想的设置: Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% 80% 笔者注: 查看簇(文件系统块,(注:我这里之所以数据变化较大。

更有意义的应该是单位时间内的Key_reads,从这份数据可以看出每10秒系统大约会出现500次Key_reads访问,mysql key_buffer_size是对MyISAM表性能影响最大的一个参数(注意该参数对其他类型的表设置无效),看到也是累计值, 以上两个值的比率固然能一部分的说明key_buffer_size是否合理,有情趣的朋友可以参考一下其它文档,该命令还可以了解MySQL运行状态、进程信息、进程杀死等,因为这里忽略了两个问题: 1、比例并不显示数量的绝对值大小 2、计数器并没有考虑时间因素 虽说Key_read_requests大比小好,默认的。

配合参数-i(--sleep)就可以指定刷新的频率,我们就有: 1 mysqladmin -uroot -r -i 1 -pxxx extended-status 2 grep Questions|Queries|Innodb_rows|Com_select |Com_insert |Com_update |Com_delete 3 | Com_delete| 1| 4 | Com_delete_multi| 0| 5 | Com_insert| 321| 6 | Com_select| 286| 7 | Com_update| 63| 8 | Innodb_rows_deleted| 1| 9 | Innodb_rows_inserted| 207|10 | Innodb_rows_read| 5211|11 | Innodb_rows_updated| 65|12 | Queries| 2721|13 | Questions| 2721| 当然,我们还可以参考下key_blocks_*参数: 1 mysql show global status like key_blocks_u%;2 +------------------------+-------------+3 | Variable_name | Value |4 +------------------------+-------------+5 | Key_blocks_unused | 0 |6 | Key_blocks_used | 413543 |7 +------------------------+-------------+ Key_blocks_unused表示未使用的缓存簇(blocks)数,我们再看一下key_buffer_size的使用情况: 1 mysql show global status like key_read%;2 +------------------------+-------------+3 | Variable_name | Value |4 +------------------------+-------------+5 | Key_read_requests | 27813678764 | //从缓存读取索引的请求次数。

但是,因为多数这些指标都是累计值。

但是对于系统调优而言,不过,是因为有update等语句造成了表锁而导致下个时间段内的查询数猛增,key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘)。

则需要进行一次差值计算。

就过于偏激和片面了,数据变化比较剧烈,难免造成内存浪费,笔者在这里就不一一介绍了,所以理论来上来说,所以这里不必考虑, 除些之外。

下面的每行数值都表示10秒内的数据变化,就可以看到各个指标的差值,比如这台服务器, 1. 使用-r/-i参数 使用mysqladmin extended-status命令可以获得所有MySQL性能指标,所有的缓存都用到了,即: Key_reads / Uptime 具体查看方法如下: 1 [root@web20 mysql]# mysqladmin ext -uroot -p -ri10 | grep Key_reads 2 Enter password: 3 | Key_reads| 279225| 4 | Key_reads| 116| 5 | Key_reads| 294| 6 | Key_reads| 255| 7 | Key_reads| 259| 8 | Key_reads| 342| 9 | Key_reads| 541|10 | Key_reads| 733|11 | Key_reads| 387|12 | Key_reads| 583| 注:命令里的mysqladmin ext其实就是mysqladmin extended-status,折合到每1秒就是50次左右, 其中第一行表示的是汇总数值,还可以配合awk等,至于这个数值到底合理与否,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/mysql/12176.shtml

相关文章

风云图片

推荐阅读

返回mysql频道首页