开发者社区> 问答> 正文

MySQL最大内存使用量?mysql

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

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

展开
收起
保持可爱mmm 2020-05-17 11:09:11 635 0
1 条回答
写回答
取消 提交回答
  • 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

    尺寸 数据库的大小非常非常重要-信不信由你,Intarweb上的大多数人从未处理过很大的工作,也不编写密集的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。来源:stack overflow

    2020-05-18 11:14:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像