gpt4 book ai didi

mysql - 基于可用 RAM 调优 MySQL

转载 作者:行者123 更新时间:2023-11-30 22:05:34 25 4
gpt4 key购买 nike

亲爱的,我经历了这一切article但不是我无法在我的 Centos 6.2 上找到名为 '/proc/user_beancounters' 的文件,是否有任何标准计算以根据可用 ram 设置 my.cnf 以增加查询性能。

如果有什么方法的话,假设我得到了8GB RAM,那么MyISAMmy.cnf的配置是什么Innodb 使用可用 RAM 获得最佳性能?

最佳答案

我不得不查找/proc/user_beancounters,它似乎是为 OpenVz 实现的 Linux 的扩展。我怀疑它会出现在普通的 CentOS Linux 中。

首先推荐你don't use MyISAM .它不是 ACID 存储引擎,它使用表锁定。 MyISAM 的唯一好处是它可以将数据存储在比 InnoDB 更少的磁盘空间中(取决于您的表结构)。

没有神奇的调整值可以使所有工作负载都达到最佳状态。如果有,它们将不是可调选项,它们只是预先设置为正确的值。

通常情况下,您拥有的数据多于可用 RAM 的容量,因此考虑到服务器上 RAM 的其他用途,折衷方案是将 innodb_buffer_pool_size 设置得尽可能高。例如,如果您有 Apache 或 Java 应用程序或内存缓存或其他 RAM 用户,请确保他们有他们需要的东西。

您需要对数据运行的查询也是一个重要的考虑因素。如果您有大量查询一直扫描整个表,那么很难将它们保留在缓冲池中。但典型的 OLTP 工作负载定位于“热点”,并在 80% 的时间内查询 20% 的数据。缓存在这里有很大帮助,因为最常请求的数据会被缓存。

针对 OLAP 工作负载进行优化更加困难,在这种情况下,您的查询可能会扫描大量数据库,并且您的数据库大于可用 RAM。

所以基本准则是:

  • 如果可以,请不要使用 MyISAM。
  • 确保其他进程拥有所需的 RAM。
  • 在剩余的 RAM 中,尽可能多地分配给 innodb_buffer_pool_size。人们通常猜测可用 RAM 的 80%。请记住,缓冲池使用的值比您设置的值高出大约 10%。
  • 如果您的数据库小于 RAM,那么让缓冲池大于数据库的大小没有任何好处。 InnoDB 只缓存每个数据库页面一次。

关于mysql - 基于可用 RAM 调优 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41888358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com