Skip to content

read_buffer_size

xiaoboluo768 edited this page Jun 14, 2020 · 2 revisions
  • MyISAM表顺序扫描的缓存大小,如果要经常顺序扫描myisam表,可以通过增大read_buffer_size的值来改善性能,但是这个变量是每会话独占,如果设置太大,会造成内存浪费,甚至物理内存耗尽
    • 在以下场景中适用于所有的存储引擎
    • 此选项也在以下上下文中用于所有存储引擎:
      • 控制ORDER BY行排序时的临时文件(不是临时表,而是排序的文件)中缓存索引的大小
      • 控制批量插入到分区中的数据大小
      • 控制缓存嵌套查询的结果集大小
    • memory存储引擎中该参数的值决定MEMORY表的内存块大小,注意是块大小,而不是memory表可以使用的内存总大小,memory引擎表的数据总大小限制由max_heap_table_size参数控制。
    • 全局,会话变量,默认为128K,最大为2G,整型值。注意:设置值必须为4K的倍数,否则会截取你设定值的最接近4K的倍数的值作为该参数的值。取值范围为:8200~2147479552字节
    • PS:为啥这个变量官方描述的是用于myisam,而在某些场景也适用于所有存储引擎呢?因为在这些场景下,mysql内部保存这些临时数据仍然使用的是myisam表,在mysql 5.7.x的版本中,这些内部临时表可以设置使用innodb存储引擎,如果临时表设置为innodb存储引擎,则这个参数的大小就无需多关注了(除非你使用myisam引擎和memory引擎)。

上一篇:table_definition_cache | 下一篇:sort_buffer_size

Clone this wiki locally