I have MySQL server with 500mb database running on a server with 8Gb of RAM. Are there any sensible tunings which will take all available memory (I mean about 80% of 8Gb)?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
It depends what you are tuning for. If you want to tune for InnoDB and or MyISAM, even in a low memory envitronment, you will need to scale formulas from this link –> https://dba.stackexchange.com/questions/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Basically, you want 75% of RAM dedicated for InnoDB. If all MyISAM, measured recommendation from the formulas given in the link.
UPDATE 2011-07-21 13:52 EDT
Cut and Paste this Formula
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;
It will output the InnoDB Buffer Pool Size for your given dataset.
Cut and Paste This One as Well
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
FROM (SELECT LEAST(POWER(2,32),KBS1) KBS FROM
(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;
It will output the MyISAM Key Buffer Size for your given dataset.
Please run both of these formulas. Keep in mind that MyISAM only caches index pages. InnoDB needs both data nad index pages cached. Probably the combined sizes of them both will be less than 500 MB.
UPDATE 2011-07-21 14:54 EDT
You may also want to tune per-DB Connection Settings
I recommend tuning your max_connections
You may also want to download mysqltuner.pl and run it on the DB server.
This perl script will tell if you have overconfigured for DB Connections or not as well the maximum RAM mysql expects to have. If the the percetage of installed RAM needed exceeds 80%, lower the per_connect DB settings (sort_buffer_size, read_buffer_size, join_buffer_size and so forth)