先简单说下myisam-block-size、key_cache_block_size、key_block_size这几个参数的含义和区别,如下是摘抄自我的另一篇文章我理解的myisam引擎之一 myisam表特征
myisam-block-size:看到这里的中划线了吗?对,这是一个启动选项,只能在启动时设置并且不能动态修改,或者设置在配置文件中,或者在启动命令行上。围绕这个参数应该是一个系统变量还是一个启动选项产生了一些争议。https://bugs.mysql.com/bug.php?id=34363 这个参数的意在设置MYI文件的block大小。默认值为1k,最大16k,最小1K。通常来说应该与操作系统block相同或者倍数关系,才能取得较好性能,如果小于系统block大小,就存在写读的问题:假如系统block大小4k,这里使用默认值1k,那么如果要写入一个1k大小的block,需要先将整个4k读出来,更新,然后再写进去。如果都是4k的话,就直接写。修改myisam-block-size不影响已存在的MYI文件。如果要修改已存在的MYI,需要重建索引。意义接近的有另外两个参数key_cache_block_size、key_block_size。key_cache_block_size是系统变量,可在参数文件中设置,也可动态修改。用于设置内存中存放索引的块大小,最大值16k,最小值512字节,默认1k;key_block_size作为参数项出现在create、alter ddl语句中,与myisam-block-size意义相同,都是控制MYI文件块大小。区别在于如果修改myisam-block-si
我理解的myisam引擎之四 myisam-block-size、key_cache_block_size、key_block_size
最新推荐文章于 2024-05-23 10:26:31 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)