代码改变世界

mysql的内存使用

2016-01-31 16:34  abce  阅读(312)  评论(0编辑  收藏  举报

Mysql Server Memory Usage = Sum of Global Buffers + (number of Connection * Per thread memory variables)

 

global buffers包含:

-key_buffer_size:				MyISAM表索引高速缓冲,提高MyISAM表索引读写效率。
-innodb_buffer_pool_size:		Innodb的高速缓冲,单位是bytes。缓冲行数据、索引数据,以及事务锁、自适应哈希等。
-innodb_additional_mem_pool:	Innodb额外内存池,单位是bytes。存放数据字典信息和其它内部数据结构信息
-innodb_log_buffer_size:		Innodb日志缓冲,单位是bytes。存放Innodb日志信息,提高redo日志写入效率
-query_cache_size: 				查询高速缓存,缓存查询结果,提高反复查询返回效率。
-table_cache:					表空间文件描述符缓存,提高数据表打开效率
-table_definition_cache:		表定义文件描述符缓存,提高数据表打开效率

 

每个thread使用的thread buffer:

-thread_stack:				线程堆栈,暂时寄存SQL语句/存储过程
-net_buffer_length:		线程池连接缓冲以及读取的结果缓冲。连接池缓冲和结果缓冲的最小值就是net_buffer_length的值,但是会动态增长,最大不会超过max_allowed_packet指定的值。
-read_buffer_size:			顺序读缓冲,提高顺序读效率
-read_rnd_buffer_size:		随机读缓冲,提高随机读效率
-join_buffer_size:			表连接缓冲,提高表连接效率
-binlog_cache_size:		二进制日志缓冲,提高二进制日志写入效率
-thread_cache_size:		线程缓存,降低多次反复打开线程开销 
-bulk_insert_buffer_size:	MyISAM表批量写入数据缓冲
-sort_buffer_size:			排序缓冲,提高排序效率
-tmp_table_size:			内存临时表,提高临时表存储效率