gpt4 book ai didi

MySQL 最大内存使用量

转载 作者:IT老高 更新时间:2023-10-28 12:50:45 24 4
gpt4 key购买 nike

我想知道如何设置 MySQL 在 Linux 服务器上使用的内存量的上限。

现在,MySQL 会在每次请求新查询时继续占用内存,最终会耗尽内存。有没有办法设置限制,以便 MySQL 使用的数量不超过该数量?

最佳答案

MySQL 的最大内存使用量很大程度上取决于硬件,您的设置 数据库本身。

硬件

硬件是显而易见的部分。 RAM 越大越好,磁盘 ftw 越快。不过,不要相信那些每月或每周的新闻通讯。 MySQL 不能线性扩展 - 即使在 Oracle 硬件上也不行。这比那要棘手一些。

底线是:对于 的推荐,没有一般的经验法则。您的 MySQL设置。这一切都取决于当前的使用情况或预测。

设置和数据库

MySQL 提供了无数变量和开关来优化其行为。如果遇到问题,您真的需要坐下来阅读(f'ing)手册。

至于数据库——一些重要的约束:

  • 表引擎 ( InnoDB , MyISAM , ...)
  • 尺码
  • 指数
  • 用法

  • 大多数关于 stackoverflow 的 MySQL 技巧都会告诉你大约 5-8 个所谓的重要设置。首先,并非所有这些都重要 - 例如为 InnoDB 分配大量资源而不使用 InnoDB 没有多大意义,因为这些资源被浪费了。

    或者——很多人建议上 max_connection变量——好吧,他们几乎不知道这也意味着 MySQL 将分配更多资源来满足这些 max_connections ——如果需要的话。更明显的解决方案可能是关闭 DBAL 中的数据库连接或降低 wait_timeout释放这些线程。

    如果你明白我的意思——真的有很多很多东西需要阅读和学习。

    发动机

    表引擎是一个非常重要的决定,很多人很早就忘记了那些,然后突然发现自己在与 30 GB 大小的斗争 MyISAM锁定并阻止其整个应用程序的表。

    我的意思不是说 MyISAM 很烂,而是 InnoDB可以调整为几乎或几乎与 MyISAM 一样快地响应并在 UPDATE 上提供诸如行锁定之类的东西而 MyISAM写入时锁定整个表。

    如果您可以在自己的基础架构上自由运行 MySQL,您可能还想查看 percona server因为其中包括来自 Facebook 和 Google(他们很快就知道)等公司的大量贡献,还包括 Percona 自己的 InnoDB 替代品。 ,称为 XtraDB .

    请参阅我的 percona-server(和 -client)设置要点(在 Ubuntu 上): http://gist.github.com/637669

    尺寸

    数据库大小非常非常重要——信不信由你,Intarwebs 上的大多数人从未处理过大型和编写密集的 MySQL 设置,但这些确实存在。有些人会吐槽并说“使用 PostgreSQL!!!111”之类的话,但我们现在先忽略它们。

    底线是:从大小来看,要做出有关硬件的决定。你真的不能让 80 GB 的数据库在 1 上快速运行
    GB 的内存。

    指数

    不是:越多越好。只需设置所需的索引,并使用 EXPLAIN 检查使用情况。 .再加上 MySQL 的 EXPLAIN确实有限,但这是一个开始。

    建议配置

    关于这些 my-large.cnfmy-medium.cnf文件——我什至不知道那些文件是为谁写的。自己卷。

    调谐引物

    一个好的开始是 tuning primer .这是一个 bash 脚本(提示:你需要 linux),它接受 SHOW VARIABLES 的输出和 SHOW STATUS并将其包装成希望有用的推荐。如果您的服务器已经运行了一段时间,建议会更好,因为会有数据作为它们的基础。

    不过,调谐底漆并不是万能的。您仍然应该阅读它建议更改的所有变量。

    阅读

    我真的很想推荐 mysqlperformanceblog .它是各种 MySQL 相关技巧的绝佳资源。不仅是 MySQL,他们还非常了解正确的硬件或 AWS 的推荐设置等。这些人拥有多年的经验。

    另一个很棒的资源是 planet-mysql ,当然。

    关于MySQL 最大内存使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1178736/

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