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:内存临时表,提高临时表存储效率