首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适用于innodb_buffer_pool_size主从式MySQL

问适用于innodb_buffer_pool_size主从式MySQL
EN

Database Administration用户
提问于 2013-11-26 02:57:24
回答 2查看 860关注 0票数 4

我想知道如何为我的主从式数据库确定innodb_buffer_pool_size的值.

我有一组MySQL,1x主+1x从机。

据我所知,innodb_buffer_pool_size通常用于存储在内存中的数据,以加速数据访问(read)。那么,我可以设置主从之间的不同价值吗?

例如,如果我计算出合适的innodb_buffer_pool_size值是8G,我应该在我的奴隶中设置8G,但对于我的主人来说,可能是4G或更少?

这是因为innodb_buffer_pool_size可以使读取过程受益,而不是写入过程。我错了吗?

谢谢。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2014-05-02 18:00:42

缓冲池还有利于编写更改。更改行时,首先在驻留在缓冲池中的行页的副本中更改行。InnoDB稍后会将该页面刷新回磁盘,并且不会让您在它调用更新完成之前等待刷新完成(它只需记录InnoDB重做日志中的更改就可以说它是安全的)。

缓冲池还包含用于辅助索引的更改缓冲区。这基本上是对索引的更新排队,所以当您更新包含索引的表时,不必等待更新后的值被插入索引。这也将在后面的背景中发生。

因此,读写都受益于拥有缓冲池,源和副本都受益于缓冲池。缓冲池越大,在运行查询以读取或写入该页时,给定页就越有可能已在RAM中。

增加缓冲池大小会导致收益递减。如果您只有一个小型数据库,比如10 of,那么分配许多千兆字节的缓冲池是没有意义的。

但是有一个比RAM大的数据库是很常见的,所以我们希望缓冲池的大小能够容纳最频繁访问的数据库页面子集。并不是所有的数据库都会被查询。因此,数据库大小的缓冲池1/4足以使95%的查询运行,而无需从磁盘加载更多的页面。这些比率只是一个例子,因为它完全取决于您的应用程序。

票数 3
EN

Database Administration用户

发布于 2013-11-27 11:37:12

InnoDB buffer pool同时缓存数据页和索引页。对于Innodb专用安装,可以将此值设置为可用内存的70-80%。

如果母版上有16 as的RAM,那么您也可以为您的从属服务器设置12 as的内存。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/53942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档