Or at least, make sure your data files are on a seperate physical drive and using a different drive controller than the web server files. Where data files are in relation to the processes that access those files can have a huge impact on database performance...
Unfortunately, this is usually beyond the realm of control for most folks who write their PHP-MySQL apps and then run 'em on remote machines. 20 million records is a pretty large database. The cluster is a good idea if you have the resources, and en even better idea if the database is still growing.