gpt4 book ai didi

内存过剩情况下的MySQL调优

转载 作者:行者123 更新时间:2023-11-29 02:34:53 26 4
gpt4 key购买 nike

我有一个带有 500mb 数据库的 MySQL 服务器运行在一个 8Gb RAM 的服务器上。是否有任何合理的调整可以占用所有可用内存(我的意思是大约 8Gb 的 80%)?

最佳答案

这取决于您要调整的内容。如果您想针对 InnoDB 和/或 MyISAM 进行调优,即使在低内存环境中,您也需要从该链接缩放公式 --> https://dba.stackexchange.com/questions/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194

基本上,您需要将 75% 的 RAM 专用于 InnoDB。如果都是MyISAM,建议从链接中给出的公式进行测量。

更新 2011-07-21 13:52 EDT

剪切并粘贴这个公式

SELECT CONCAT(ROUND(KBS/POWER(1024,IF(PowerOfTwo<0,0,IF(PowerOfTwo>3,0,PowerOfTwo)))+0.49999),SUBSTR('KMG',IF(PowerOfTwo<0,0,IF(PowerOfTwo>3,0,PowerOfTwo))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tablesM
WHERE engine='InnoDB') A,
(SELECT 2 PowerOfTwo) B;

它将输出给定数据集的 InnoDB 缓冲池大小。

也剪切和粘贴这个

SELECT CONCAT(ROUND(KBS/POWER(1024,IF(PowerOfTwo<0,0,IF(PowerOfTwo>3,0,PowerOfTwo)))+0.4999),SUBSTR('KMG',IF(PowerOfTwo<0,0,IF(PowerOfTwo>3,0,PowerOfTwo))+1,1)) recommended_key_buffer_size
从 (SELECT LEAST(POWER(2,32),KBS1) KBS 从
(SELECT SUM(index_length) KBS1 FROM information_schema.tables
WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) AA
) A,(SELECT 2 PowerOfTwo) B;

它将输出给定数据集的 MyISAM key 缓冲区大小。

请运行这两个公式。请记住,MyISAM 只缓存索引页。 InnoDB 需要缓存数据和索引页。它们的总大小可能小于 500 MB。

更新 2011-07-21 14:54 EDT

您可能还想调整每个数据库的连接设置

I recommend tuning your max_connections

您可能还想下载 mysqltuner.pl 并在数据库服务器上运行它。

wget mysqltuner.pl

此 perl 脚本将告诉您是否为 DB 连接过度配置,以及 mysql 期望的最大 RAM。如果所需安装 RAM 的百分比超过 80%,请降低 per_connect DB 设置(sort_buffer_size、read_buffer_size、join_buffer_size 等)

关于内存过剩情况下的MySQL调优,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6780201/

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