Вывести все SQL запросы в рамках одной PHP транзакции
Есть долго живущий большой проект на PHP в разработке которого в разное время принимало участие большое количество разных разработчиков. Потенциально в ходе допиливания и фикса багов могли возникнуть места в которых делаются дублирующие запросы к БД. Тоесть какой-то разработчик для решения локальной задачи мог написать и выполнить запрос возвращающий данные которые уже были ранее получены в рамках выполнения скрипта. Сейчас на проекте встал вопрос оптимизации работы с БД в связи с чем у меня вопрос:
Существуют ли инструменты позволяющие увидеть какие запросы к БД были сделаны в рамках одной PHP транзакции?
Вопрос связан с тем, что точек входа в API проекта очень много и проверять все их просто читая код (который иногда весьма витиеват) займет много времени.
Ответы (1 шт):
Сейчас на проекте встал вопрос оптимизации работы с БД
Вывод "всех запросов" не имеет к этому вопросу ни малейшего отношения.
Оптимизация делается совсем по-другому. Не методом тыка пальцем в небо, а методом профилирования.
Начать можно со slow query log в mysql, и с оптимизации запросов из него. Затем надо заняться профилированием скриптов, выявить узкие места и разбираться с ними. То есть, если перефразировать старый анекдот, искать часы где потерял, а не там, где светлее