You could write a function that checks the time, then call the function before and after whatever you think is creating your slowdown, say a sql query. Then return the results, this will tell you exactly where the problem is. Something like this:
function getmicrotime() {
list ($usec, $sec) = explode(" ",microtime());
return((float)$usec + (float)$sec);
}
$time_start = getmicrotime();
for ($i=0;$i<1000;$i++) {
//do nothing 1000 times
}
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo "did nothing 1000 times in $time seconds";
This way you know if it's MySQL or not! If it is, I would agree with 'stolzyboy' and read up on indexes, organization, and optimizing. Every DB is going to need something different, so it's going to take some reading and testing to see what's best for your DB.