MySQL内存结构

实际上MySQL内存的组成和Oracle类似,也可以分为SGA(系统全局区)和PGA(程序缓存区)。

mysql>show variables like "%buffer%";

一、SGA

1.innodb_buffer_bool

用来缓存Innodb表的数据、索引、插入缓冲、数据字典等信息。

2.innodb_log_buffer

事务在内存中的缓冲,即red log buffer的大小

3.query cache

高速查询缓存,在生产环境中建议关闭。

4.key_buffer_size

用于MyISAM存储引擎,缓存MyISAM存储。

引擎表的索引文件(区别于innodb_buffer_poll数据和索引缓存)

5.innodb_additional_mem_pool_size

用来缓存数据字典信息和其它内部数据结构的内存池的大小。MySQL5.7.4中该参数取消。

二、PGA

1.sort_buffer_size

主要用于SQL语句在内存中的临时排序

2.join_buffer_size

表连接使用,用于BKA,MySQL5.6之后开始支持。

3.read_buffer_size

表顺序扫描的缓存,只能应用于MyISAM表存储引擎。

4.read_rnd_buffer_size

MySQL随机读缓冲区大小,用于做mrr,mrr是MySQL5.6之后才有的特性。

5.tmp_table_size

SQL语句在排序或分组时没有用到索引,就会使用临时表空间。

6.max_heap_table_size

管理heap,memory存储引擎表。

 

原文地址:https://www.cnblogs.com/chinaops/p/9634298.html