Andrew Johnstone has posted a few handy tips to help you find out where in your application a certain kind of issue might lie - MySQL/PHP performance problems.
In high performance web applications you will always have bottlenecks within your application. Identifying these bottlenecks and optimizing is a tedious task and typically show themselves underload. A single bad/unindexed query can bring a server to its knees. A large number of rows will also help to highlight any poor queries, and on very large datasets you may come to the point where you may have to make decisions whether to denormilize database schema.
One of his recommendations is to run an EXPLAIN on each of the pages, showing what kinds of queries are being run and how long they could take. Once you've found that there is an issue somewhere, then you can move on to his next tip - using mysqlreport and mytop to watch the processes. He includes some sample commands to run, but there's more detailed information in a guide on hackmysql.com.