mysql innodb缓冲池大小依赖于哪些

时间:2017-06-30 13:28:40

标签: mysql size buffer innodb pool

我想根据innodb_buffer_pool_size来维护RAM。但我发现的所有东西都是innodb_buffer_pool_size对RAM的依赖。

你能告诉我innodb_buffer_pool_size上哪些参数依赖吗?查询数量?交易数量?

我想找出根据innodb_buffer_pool_size计算RAM的公式。

你能帮帮我吗?非常感谢你的建议!

1 个答案:

答案 0 :(得分:0)

调整innodb_buffer_pool_size

  • 如果所有查询/事务都涉及微小的表微小部分或大表,那么一个小的buffer_pool就足够了。
  • 如果您有UUID,则需要一个大的缓冲池 - 因为您不能通过UUID触及表/索引的“微小”部分;他们太随意了。
  • 大于70%的RAM是危险的,因为它可能导致交换,这对于性能来说是非常糟糕的。
  • 这是可用 RAM的70% - 需要为操作系统,代码,其他缓存等留出空间。
  • 更改RAM时,请更改buffer_pool_size。或者相反。
  • 越大越好。
  • 比所有数据和索引的总大小要大得多(浪费RAM)。
  • 太小导致涉及InnoDB的大多数操作的操作效率低下。
  • buffer_pool是缓存。计算机科学讨论了这意味着什么以及后果是什么。

因此,简单的公式“将其设置为可用 RAM的70%”。

SHOW GLOBAL STATUS中有各种指标可以说明buffer_pool是否“足够大”。但它们只有在设置大小后才有用,然后运行一段时间。他们只说“有很多读/写”,他们没有说是否改变大小或改变大小。

如果您希望我分析状态(在至少一天之后),请提供

  • 多少内存
  • SHOW VARIABLES;
  • SHOW GLOBAL STATUS;

我会检查那些公式,再加上几百个公式。