mysql Key_buffer_size参数的设置

原创 2012年03月30日 11:20:30

在mysql数据库中,mysql key_buffer_size是对MyISAM表性能影响最大的一个参数,下面就将对mysql Key_buffer_size参数的设置进行详细介绍,供您参考。

下面一台以MyISAM为主要存储引擎服务器的配置:
mysql> show variables like 'key_buffer_size';
+-----------------+------------+
| Variable_name | Value |
+-----------------+------------+
| key_buffer_size | 536870912 |
+-----------------+------------+
分配了512MB内存给mysql key_buffer_size,我们再看一下key_buffer_size的使用情况:
mysql> show global status like 'key_read%';
+------------------------+-------------+
| Variable_name | Value |
+------------------------+-------------+
| Key_read_requests | 27813678764 |
| Key_reads | 6798830 |
+------------------------+-------------+
一共有27813678764个索引读取请求,有6798830个请求在内存中没有找到直接从硬盘读取索引,计算索引未命中缓存的概率:

key_cache_miss_rate = Key_reads / Key_read_requests * 100%

比如上面的数据,key_cache_miss_rate为0.0244%,4000个索引读取请求才有一个直接读硬盘,已经很BT了,key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少。
MySQL服务器还提供了key_blocks_*参数:
mysql> show global status like 'key_blocks_u%';
+------------------------+-------------+
| Variable_name | Value |
+------------------------+-------------+
| Key_blocks_unused | 0 |
| Key_blocks_used | 413543 |
+------------------------+-------------+
Key_blocks_unused表示未使用的缓存簇(blocks)数,Key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。比较理想的设置:
Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%


相关文章推荐

mysql优化的重要参数 key_buffer_size table_cache

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

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

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

key_buffer_size 参数

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

拨乱反正:MyISAM中key_buffer_size的设置

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

Mysql配置参数innodb_buffer_pool_size的学习与整理(配合之前文章配置数据库)

摘要: 这半个月来,一直在做一些关于服务器交易端性能的提升工作,主要是分析和讨论交易端性能的瓶颈,找出导致性能减慢的原因,拟定出合理的解决方案,主要是通过几个方面进行研究和学习,今天总算有了一点点突破...

MySQL 效能優化之參數配置修改(innodb_buffer_pool_size)

網站架好以後,為了網站的訪問速度等問題,必須對某些服務器的配置做優化,其中資料庫的部分就變得非常重要,因為網站的訪問幾乎都會關係到資料庫的存取,因此資料庫的效能及利用率的好壞,直接影響網站的訪問速度。...

MySQL优化经验 key_buffer_size,query_cache_size,ta

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

MySQL优化经验 key_buffer_size,query_cache_size,table_cache

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

mysql - 为magento性能测试修改innodb的innodb_buffer_pool_size而引发的问题

mysql的日志文件 mysql的日志文件有四种,分别是错误日志(error log),普通数据操作日志(general query log),二进制日志(binary log)和低效率查询日志(s...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql Key_buffer_size参数的设置
举报原因:
原因补充:

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