Как отдебажить большой sql-запрос?

344
09 февраля 2017, 00:18

Есть большой sql-запрос (почти на 1500 строк), доставшийся по наследству, но не функционирующий правильно. Нужно отдебажить. Подскажите, каким образом было бы правильно в нем разобраться?

Сейчас он работает, но возвращает 0 строк.

Answer 1

с наследством в нашем деле обычно везёт :-) sql-запрос это в процедурном понимании одна неделимая инструкция, поэтому термин "отладка" не совсем подходит. рекомендации такие:

  1. упрощение запроса - постарайтесь выделить какие-то очевидные части запроса и на основании их создать view, убедиться сначала что view работают как нужно, а из запроса в свою очередь обращаться к view - это упростит логику и вероятно позволит локализовать проблему
  2. анализ плана выполнения запроса - в любом случае полезное занятие, так как помимо выявления логических ошибок позволит выявить проблемы производительности (например, фильтры без индексов, и т.д.). Это команда EXPLAIN <запрос> - выдаст вам протокол всех действий, которые выполняет сервер СУБД при выполнении запроса
READ ALSO
Ubuntu, MySQL - проблемы с кодировкой

Ubuntu, MySQL - проблемы с кодировкой

Поставил на Ubuntu сервер MySQL, создал БД, при создании указал кодировку utf-8:

383
Каким образом сделать выборку слов из базы по первой букве

Каким образом сделать выборку слов из базы по первой букве

ЗдравствуйтеКаким образом можно сделать выборку из базы MySQL слов, которые начинаются на определенную букву?

382
mysql join отсутствие во второй таблице

mysql join отсутствие во второй таблице

Есть запрос: SELECT imageimage_id, offer_id FROM shop_item_param_image LEFT JOIN image ON shop_item_param_image

369
React Native: Android UI component

React Native: Android UI component

Нужно подключить компонент:

409