MyISAM中key_buffer_size

原创 2012年03月30日 11:22:16

MyISAM中key_buffer_size的设置

 

一直以来,多数人在使用MyISAM时都是按照增大Key_read_requests / Key_reads的原则来设置key_buffer_size的,没想到这竟然是错误的!

 

Key_read_requests和Key_reads就是两个计数器,它们的含义如下:

 

Key_read_requests:从缓存读取索引的请求次数。

Key_reads:从磁盘读取索引的请求次数。

 

通常人们认为Key_read_requests / Key_reads越大越好,否则就应该增大key_buffer_size的设置,但通过计数器的比例来调优有两个问题:

 

问题一:比例并不显示数量的绝对值大小

问题二:计数器并没有考虑时间因素

 

虽说Key_read_requests大比小好,但是对于系统调优而言,更有意义的应该是单位时间内的Key_reads:

 

Key_reads / Uptime

 

你可以通过命令行得到一个实时的数据结果,比如:

 

# mysqladmin ext -ri10 | grep Key_reads

 

| Key_reads                         | 83777189      |

| Key_reads                         | 211           |

| Key_reads                         | 177           |

| Key_reads                         | 202           |

 

 

提示:命令里的mysqladmin ext其实就是mysqladmin extended-status,你甚至可以简写成mysqladmin e。

 

其中第一行表示的是汇总数值,所以这里不必考虑,下面的每行数值都表示10秒内的数据变化,从这份数据可以看出每10秒系统大约会出现200次Key_reads访问,折合到每1秒就是20次左右,至于这个数值到底合理与否,就由服务器的磁盘能力而定了。

 

顺便说一句,为啥数据按10秒取样,而不是直接按1秒取样?这里看看按1秒的结果:

 

# mysqladmin ext -ri1 | grep Key_reads

 

| Key_reads                         | 83776743      |

| Key_reads                         | 7             |

| Key_reads                         | 7             |

| Key_reads                         | 38            |

 

可以看到,由于时间段过小,数据变化比较剧烈,不容易直观估计大小,所以通常数据按照10秒或者60秒之类的时间段来取样是更好的。

 

忘记:Key_read_requests / Key_reads

牢记:Key_reads / Uptime


拨乱反正:MyISAM中key_buffer_size的设置

一直以来,多数人在使用MyISAM时都是按照增大Key_read_requests / Key_reads的原则来设置key_buffer_size的,没想到这竟然是错误的!这次给大家醍醐灌顶的仍然是...
  • zqtsx
  • zqtsx
  • 2013年06月03日 16:09
  • 1922

mysql优化的重要参数 key_buffer_size table_cache

MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影响最大呢?对于使用Myisam存储引擎来说,主要有key_b...

key_buffer_size 参数

为了最小化磁盘的 I/O , MyISAM 存储引擎的表使用键高速缓存来缓存索引,这个键高速缓存的大小则通过 key-buffer-size 参数来设置。如果应用系统中使用的表以 MyISAM 存储引...
  • gzh0222
  • gzh0222
  • 2012年05月28日 09:07
  • 852

mysql中key_buffer_size,query_cache_size,table_cache的合理设置

key_buffer_size,query_cache_size,table_cache三个参数比较重要 key_buffer_size只对MyISAM表起作用, key_buffer_size指...

MySQL优化经验 key_buffer_size,query_cache_size,ta

同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或...
  • hhhbbb
  • hhhbbb
  • 2011年12月02日 15:42
  • 1934

MySQL优化经验 key_buffer_size,query_cache_size,table_cache

同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或...
  • yp120yp
  • yp120yp
  • 2011年12月04日 11:38
  • 495

KGTP中增加对GDB命令“set trace-buffer-size”的支持 - Week 6

CSDN开源夏令营 - 第六周工作总结

live555: The input frame data was too large for our buffer size 解决方法

在做live555 直播的时候,输入的图片尺寸是320*240 的时候,live555 输出的RTSP数据流可以正常解码,运行没有出现异常现象,但是把图片尺寸改为640*480的时候,就出现了问题: ...

调整Linux的网络栈(Buffer Size)来提升网络性能

本文基于CENTOS 、DEBIAN/UBUNTU 编写 。 我有两台位于不同数据中心的服务器,都用来处理很多并行的大文件传输。但是处理大文件,网络性能非常差。并且涉及到一个大文件,会导致性能降...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MyISAM中key_buffer_size
举报原因:
原因补充:

(最多只允许输入30个字)