配置InnoDB的内存分配器 在开发InnoDB时,操作系统和运行时库提供的内存分配器通常缺乏性能和可伸缩性。那时,还没有针对多核cpu调优的内存分配器库。因此,InnoDB在mem子系统中实现了自己的内存分配器。这个分配器由一个互斥锁保护,这可能成为瓶颈。InnoDB还围绕系统分配器(malloc和free)实现了一个包装器接口,它同样由一个互斥锁保护。今天,随着多核系统的广泛应用,以及操作系统的成熟,操作系统所提供的内存分配器已经有了显著的改进。与过去相比,这些新的内存分配器性能更好,可伸缩性更强。大多数工作负载,特别是那些经常分配和释放内存的工作负载(比如多表连接),比使用一个内部的、特定于innodb的内存分配器更好的内存分配器。你可以通过在MySQL选项文件(my.cnf或my.ini)中设置系统配置参数innodb_use_sys_malloc的值来控制InnoDB是使用自己的内存分配器还是操作系统的分配器。如果设置为ON或1(默认值),InnoDB使用底层系统的malloc和free函数,而不是自己管理内存池。该参数为非动态配置,仅在系统启动时生效。如果需要继续使用InnoDB内存分配器,请将innodb_use_sys_malloc设置为0。当InnoDB内存分配器被禁用时,InnoDB会忽略参数innodb_additional_mem_pool_size的值。InnoDB内存分配器使用一个额外的内存池来满足分配请求,而不必回到系统内存分配器。当InnoDB内存分配器被禁用时,所有这样的分配请求都由系统内存分配器来完成。在使用动态链接的类似于unixr的系统上,只需让环境变量LD_PRELOAD或LD_LIBRARY_PATH指向实现该分配器的动态库,就可以轻松地替换内存分配器。在其他系统上,可能需要进行一些重新链接。请参考您所选择的内存分配器库的文档。因为当系统内存分配器被使用时(innodb_use_sys_malloc是ON), InnoDB不能跟踪所有内存的使用情况,所以在SHOW ENGINE InnoDB STATUS命令的输出中BUFFER POOL AND memory部分只包括Total memory allocation中的BUFFER POOL统计信息。任何使用mem子系统或使用ut_malloc分配的内存都被排除在外。
MySQL 配置InnoDB的内存分配器
来源:这里教程网
时间:2026-03-01 16:36:08
作者:
编辑推荐:
- MySQL 配置InnoDB的内存分配器03-01
- MySQL 配置InnoDB变更缓冲03-01
- MySQL 配置InnoDB的并发线程03-01
- MySQL 配置后台InnoDB I/O线程数03-01
- MySQL 配置InnoDB主线程I/O速率03-01
- MySQL 配置自旋锁轮询03-01
- MySQL 配置InnoDB清理调度03-01
- MySQL 传输表空间03-01
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 基于LINUX的MySql二进制本地升级实施文档
基于LINUX的MySql二进制本地升级实施文档
26-03-01 - MySQL 8.0新特性-并行查询innodb_parallel_read_threads
- 分析SQL给出索引优化建议的工具(美团开源)
分析SQL给出索引优化建议的工具(美团开源)
26-03-01 - 《MySQL 8从入门到精通(视频教学版)》简介
《MySQL 8从入门到精通(视频教学版)》简介
26-03-01 - 【北亚数据库数据恢复】使用delete未加where子句删除全表数据的Mysql数据库数据恢复
- 如何远程管理天翼云RDS数据库
如何远程管理天翼云RDS数据库
26-03-01 - 【北亚数据库数据恢复】误操作导致数据丢失的华为云mysql数据恢复案例
【北亚数据库数据恢复】误操作导致数据丢失的华为云mysql数据恢复案例
26-03-01 - 新版本 | GreatSQL 5.7.36正式发布,这些新增特性不容错过~
- 电源供电系列高稳定性抗干扰VK3604A 四键感应触摸/4路触控芯片原厂
电源供电系列高稳定性抗干扰VK3604A 四键感应触摸/4路触控芯片原厂
26-03-01 - web前端培训-MySQL的索引下推解析
web前端培训-MySQL的索引下推解析
26-03-01
