gpt4 book ai didi

mysql - MySQL最大内存使用量

转载 作者:行者123 更新时间:2023-11-29 20:26:15 25 4
gpt4 key购买 nike

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

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

最佳答案

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

硬件

硬件是显而易见的部分。越多的内存越多,磁盘越快。但是不要相信那些每月或每周的新闻信。 MySQL不能线性扩展-甚至不能在Oracle硬件上扩展。比这要复杂一些。

最重要的是:对于MySQL设置的建议,没有一般的经验法则。这完全取决于当前的使用情况或预测。

设置和数据库

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

至于数据库-一些重要的限制:


表引擎(InnoDBMyISAM,...)
尺寸
指标
用法


关于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自己的drop -in替代InnoDB,称为XtraDB

有关Percona服务器(和-client)设置(在Ubuntu上),请参见我的要旨:http://gist.github.com/637669

尺寸

数据库的大小非常非常重要-信不信由你,Intarweb上的大多数人从未处理过很大的工作,也不编写密集的MySQL设置,但确实存在。某些人会说出类似“使用PostgreSQL !!! 111”这样的说法,但是现在让我们忽略它们。

底线是:从大小上判断,将决定硬件。您无法真正使80 GB数据库在1
GB的RAM。

指标

不是:更多,更好。仅需要设置索引,并且必须使用EXPLAIN检查使用情况。另外,MySQL的EXPLAIN确实很有限,但这只是一个开始。

建议配置

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

调音底漆

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

调音入门不是魔术酱。您仍然应该阅读所有建议更改的变量。

阅读

我真的很想推荐mysqlperformanceblog。对于各种与MySQL相关的技巧,这是一个很好的资源。而且不仅是MySQL,他们还对正确的硬件有很多了解,或者对AWS推荐安装等。这些人有多年的经验。

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

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

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