注册
登录
云鉴权
MySQL最大内存使用量
返回
MySQL最大内存使用量
作者:
狗头军师
发布时间:
2025-02-05 02:48:45 (16天前)
我想知道如何在Linux服务器上设置MySQL使用的内存量上限。
现在,MySQL将继续用每个请求的新查询占用内存,以便最终耗尽内存。有没有办法设置一个限制,使MySQL使用的限制不超过该数量?
收藏
举报
2 条回复
1#
回复此人
v-star*위위
|
2020-08-21 15-14
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服务器,因为其中包括来自Facebook和Google等公司(他们很快就知道)的大量贡献,其中还包括Percona自己的drop-在更换InnoDB,叫XtraDB。 有关Percona服务器(和-client)设置(在Ubuntu上),请参见我的要旨:http ://gist.github.com/637669 尺寸 数据库的大小非常非常重要-信不信由你,Intarwebs上的大多数人从未处理过大型的,无法编写密集的MySQL设置,但确实存在。某些人会恶搞并说出类似“使用PostgreSQL !!! 111”的字眼,但是现在让我们忽略它们。 底线是:从大小上判断,将决定硬件。您无法真正使80 GB的数据库在1 GB的RAM上快速运行。 指标 不是:更多,更好。只需设置所需的索引,并使用来检查其用法EXPLAIN。另外,MySQL的EXPLAIN功能确实有限,但这只是一个开始。 建议配置 关于这些my-large.cnf和my-medium.cnf文件-我甚至不知道谁是那些书面。自己动手。 调音底漆 调优入门是一个很好的开始。这是一个bash脚本(提示:您将需要linux),该脚本接受和的输出,SHOW VARIABLES并将SHOW STATUS其包装为希望有用的建议。如果您的服务器已经运行了一段时间,则建议会更好,因为将有数据作为基础。 调音入门不是魔术酱。您仍然应该阅读所有建议更改的变量。 读 我真的很喜欢推荐mysqlperformanceblog。对于各种与MySQL相关的技巧,这是一个很好的资源。而且不仅是MySQL,他们还对正确的硬件有很多了解,或者对AWS推荐安装等。这些人有多年的经验。 当然,另一个很棒的资源是planet-mysql。
编辑
登录
后才能参与评论