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存储引擎表。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏