Вывести все SQL запросы в рамках одной PHP транзакции

Есть долго живущий большой проект на PHP в разработке которого в разное время принимало участие большое количество разных разработчиков. Потенциально в ходе допиливания и фикса багов могли возникнуть места в которых делаются дублирующие запросы к БД. Тоесть какой-то разработчик для решения локальной задачи мог написать и выполнить запрос возвращающий данные которые уже были ранее получены в рамках выполнения скрипта. Сейчас на проекте встал вопрос оптимизации работы с БД в связи с чем у меня вопрос:

Существуют ли инструменты позволяющие увидеть какие запросы к БД были сделаны в рамках одной PHP транзакции?

Вопрос связан с тем, что точек входа в API проекта очень много и проверять все их просто читая код (который иногда весьма витиеват) займет много времени.


Ответы (1 шт):

Автор решения: Ипатьев

Сейчас на проекте встал вопрос оптимизации работы с БД

Вывод "всех запросов" не имеет к этому вопросу ни малейшего отношения.

Оптимизация делается совсем по-другому. Не методом тыка пальцем в небо, а методом профилирования.

Начать можно со slow query log в mysql, и с оптимизации запросов из него. Затем надо заняться профилированием скриптов, выявить узкие места и разбираться с ними. То есть, если перефразировать старый анекдот, искать часы где потерял, а не там, где светлее

→ Ссылка