内存结构图
全局缓存包括
1
2
3
4
5
6
7
8
9> global buffer(全局内存分配总和) =
> innodb_buffer_pool_size --InnoDB高速缓冲,行数据、索引缓冲,以及事务锁、自适应哈希等
> +innodb_additional_mem_pool_size --InnoDB数据字典额外内存,缓存所有表数据字典
> +innodb_log_buffer_size -- InnoDB REDO日志缓冲,提高REDO日志写入效率
> +key_buffer_size -- MyISAM表索引高速缓冲,提高MyISAM表索引读写效率
> +query_cache_size --查询高速缓存,缓存查询结果,提高反复查询返回效率
> +thread_cache_size --Thread_Cache 中存放的最大连接线程数
> +table_cahce -- 表空间文件描述符缓存,提高数据表打开效率
> +table_definition_cache -- 表定义文件描述符缓存,提高数据表打开效率会话缓存包括
1
2
3
4
5
6
7
8
9
10> total_thread_buffers= max_connections*(
> read_buffer_size-- 顺序读缓冲,提高顺序读效率
> +read_rnd_buffer_size-- 随机读缓冲,提高随机读效率
> +sort_buffer_size-- 排序缓冲,提高排序效率
> +join_buffer_size-- 表连接缓冲,提高表连接效率
> +binlog_cache_size-- 二进制日志缓冲,提高二进制日志写入效率
> +tmp_table_size -- 内存临时表,提高临时表存储效率
> +thread_stack-- 线程堆栈,暂时寄存SQL语句/存储过程
> +thread_cache_size-- 线程缓存,降低多次反复打开线程开销,模拟连接池
> )
查看Mysql全局占用内存大小
1 | mysql>select (@@innodb_buffer_pool_size+@@innodb_log_buffer_size+@@key_buffer_size)/1024/1024 as g_buffer; |
performance_schema占用多少内存
1 | mysql>SELECT SUBSTRING_INDEX(event_name,'/',2) AS |
每个线程占用多少内存
1 | mysql>SELECT ( ( @@read_buffer_size |