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...
  • u013558606
  • u013558606
  • 2014年06月25日 19:24
  • 2722

mysql优化的重要参数  key_buffer_size  table_cache

table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。      open_tables表示当前打开的表缓存数,如果执行flush ta...
  • Heng_Ji
  • Heng_Ji
  • 2014年06月19日 19:07
  • 3833

key_buffer_size

myisam索引缓冲,对myisam很重要,缓存myisam表索引数据(misam表的索引只需打开一次,多个线程间共享:而数据文件则是每个线程各自打开) myisam只缓存索引数据,不缓存行数据,行...
  • wei_wenbo
  • wei_wenbo
  • 2016年03月07日 10:32
  • 686

mysql 优化技巧心得一(key_buffer_size设置).

1: 对于mysql来说,登录的时候,加一个参数 #mysql -u root -p --prompt="\\u@\\d \\r:\\m:\\s>" --prompt 是加一些登录后的参数,上面参...
  • rainysia
  • rainysia
  • 2013年04月07日 15:49
  • 14035

mysql Key_buffer_size参数的设置

在mysql数据库中,mysql key_buffer_size是对MyISAM表性能影响最大的一个参数,下面就将对mysql Key_buffer_size参数的设置进行详细介绍,供您参考  。...
  • zqtsx
  • zqtsx
  • 2013年10月14日 18:15
  • 1456

MySQL优化经验 key_buffer_size,query_cache_size,t

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

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

key_buffer_size,query_cache_size,table_cache三个参数比较重要 key_buffer_size只对MyISAM表起作用, key_buffer_size指...
  • cenfei78325747
  • cenfei78325747
  • 2012年08月13日 18:20
  • 2574

mysql优化实践总结

原文地址:http://support.chinaccnet.com/archives/2170.html 编译Mysql时configure: error: No curses/termcap...
  • yangtze_1006
  • yangtze_1006
  • 2011年08月11日 14:03
  • 3280

key_buffer_size 参数

为了最小化磁盘的 I/O , MyISAM 存储引擎的表使用键高速缓存来缓存索引,这个键高速缓存的大小则通过 key-buffer-size 参数来设置。如果应用系统中使用的表以 MyISAM 存储引...
  • tangyali516
  • tangyali516
  • 2017年03月30日 17:04
  • 174

set session BULK_INSERT_BUFFER_SIZE

mysql 的 Load data infile 之曲折路前因:开发一个数据统计系统,需要分析Apache日志,在把日志Load data infile到mysql表的时候,才发现ubuntu所在分区...
  • militala
  • militala
  • 2010年12月23日 13:54
  • 2943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql Key_buffer_size参数的设置
举报原因:
原因补充:

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