Я бы залогировал время выполнения всех запросов, составил топ самых медленных и начал с верха разбирать каждый запрос.
Все таблицы соответствуют норльманым формам, индексами покрыты (в т.ч. и составными) большая часть запросов SELECT.
Большое кол-во join-ов снижают производительность, вложенные селекты могут убивать производительность т.к. на них нет индексов. Так же зачастую разработчики ставят неправильные индексы что дает не максимальную производительность - не достаточно просто "установить" индексы на нужные поля.
Но это все разработчику, админу наверно остается следить что-б памяти хватало, да в cpu/io не упиралось (ну и может статьи по тюнингу почитать)