On 7 Feb 2012, at 00:55, Grant wrote:

> I'm running mysql on Gentoo with 4GB RAM and I'm wondering if I should
> change any settings.  I'm using mysql with a website on the same
> server so I have skip-networking, and I increased key_buffer and
> innodb_buffer_pool_size from 16M to 256M.  Everything else is default.
> Should I consider changing these or any other settings?

Grant, 

What I usually recommend about database tuning:

1. Visibility.
   There's no way you can see if your changes are good or bad for performance 
if you don't have a waterline and visibility. I recommend you to pick your 
favourite performance graphing tool and ensure we have good graphs available 
for all the most important key performance indicators that you can think of. 
The more graphs, the easier it gets to spot bottlenecks and understand 
root-causes of performance issues.

2. Monogamy
   Tuning MySQL databases that mix MyISAM and InnoDB storage engines is hard 
and tricky. If you have the chance, I strongly recommend you choosing one 
storage engine and sticking to it above everything else. This might sound like 
a hard choice to make in the beginning but it will pay you back with good 
dividends later on, both in improved performance and lower resource consumption 
than the equivalent databases with hybrid storage engine options.

3. Control
   Before you start making changes to your configuration, I strongly recommend 
you to version-control it. I used to use and recommend RCS for this, but Git is 
a more modern, yet flexible and powerful version control to which I've feel in 
love. Version controlling your changes gives you control over your 
configuration and helps determining what changes happened in which order and 
when. This helps you pin-pointing results of your changes on your graphs and 
correlating what you do with how the server reacts. 

4. Logs
   Make sure you enable all the information you can about your slow-query log, 
this is an essential part of detecting query and schema related bottlenecks. 
Here at the office we use Percona Patched MySQL databases, and I usually enable 
all the Percona-provided extensions to the slow query log.

5. Work Holistically
   Database Tuning isn't an isolated process. You should start from a "best 
guess" configuration and work in cycles towards a configuration that satisfies 
your needs without compromising more resources than you have available. 
Remember, there's no point in adjusting a couple of database variables without 
understanding what it means for the application and for the queries / schema. 
Make sure you include your developers (if you're not one of them) and take into 
consideration all the information you have at hand.

I hope this helps with getting started. 

Good luck, and kind regards.
--
Luis Motta Campos
is a DBA, Foodie, and Photographer


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql

Reply via email to