10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.4 mb
PDF (A4)- 36.4 mb
手册页(TGZ)- 237.7 kb
手册页(Zip)- 349.4 kb
信息(Gzip)- 3.4 mb
信息(邮政编码)- 3.4 mb
本手册节选

14.8.4配置InnoDB内存分配器

InnoDB在开发时,操作系统和运行时库提供的内存分配器通常缺乏性能和可伸缩性。当时,还没有针对多核cpu调优的内存分配器库。因此,InnoDB中实现了自己的内存分配器mem子系统。这个分配器由一个互斥锁保护,它可能变成瓶颈InnoDB还实现了围绕系统分配器(malloc而且免费的),同样由一个互斥锁保护。

今天,随着多核系统的广泛使用,以及操作系统的成熟,操作系统所提供的内存分配器已经有了显著的改进。与过去相比,这些新的内存分配器性能更好,可伸缩性更强。大多数工作负载,特别是那些经常分配和释放内存的工作负载(例如多表连接),都受益于使用更调优的内存分配器,而不是使用内部的内存分配器。InnoDB特定的内存分配器。

你可以控制是否InnoDB通过设置系统配置参数的值,使用自己的内存分配器或操作系统的分配器innodb_use_sys_malloc在MySQL选项文件(my.cnfmy.ini).如果设置为1(默认),InnoDB使用malloc而且免费的底层系统的功能,而不是管理内存池本身。该参数不是动态的,仅在系统启动时生效。继续使用InnoDB内存分配器,设置innodb_use_sys_malloc0

InnoDB内存分配器已禁用,InnoDB忽略参数的值innodb_additional_mem_pool_size.的InnoDB内存分配器使用一个额外的内存池来满足分配请求,而不必返回到系统内存分配器。当InnoDB当内存分配器被禁用时,所有这样的分配请求都由系统内存分配器来完成。

在使用动态链接的类unix系统上,替换内存分配器可能就像设置环境变量一样简单LD_PRELOADLD_LIBRARY_PATH指向实现分配器的动态库。在其他系统上,可能需要进行一些重新链接。请参考您选择的内存分配器库的文档。10bet官方网站

InnoDB使用系统内存分配器时,无法跟踪所有内存使用情况(innodb_use_sys_malloc),该部分缓冲池和内存的输出中显示引擎innodb状态命令中只包含缓冲池的统计信息已分配内存总量.属性分配的任何内存mem子系统或使用ut_malloc是排除在外。

请注意

innodb_use_sys_malloc而且innodb_additional_mem_pool_size在MySQL 5.6中已弃用,并在MySQL 5.7中被删除。

的性能影响的详细信息InnoDB内存使用情况,请参见第8.10节,“缓冲和缓存”