[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Долгий LEFT JOIN
mikhailidi
Приветствуйте новичка PHP-Форума ! И вот мой начальный вопрос:
Чем и как можно заменить LEFT JOIN ? Проблема состоит в том, что при запросе с 4-мя Лефт Джоинами в базу, которая имеет 3.5кк записей, время выполнения запроса составляет 70+ секунд, задача - уменьшить время запроса хотя бы до 5 секунд. Индексы в базе пресутствуют.

Буду рад каждому ответу !
jetistyum
попробуй сделать VIEW по данному запросу и выбирать данные из VIEW
sergeiss
Цитата (mikhailidi @ 30.08.2016 - 15:27)
Индексы в базе пресутствуют.

Сделай EXPLAIN и посмотри, действительно ли эти индексы используются. И какие именно индексы используются. При сложных условиях на несколько полей надо делать сложные индексы на все эти поля - простых индексов совершенно недостаточно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
S.Chushkin
Цитата (jetistyum @ 30.08.2016 - 15:36)
попробуй сделать VIEW по данному запросу и выбирать данные из VIEW

Пишу специально для тебя, т.к. ты упорно ошибаешься.

VIEW это просто обёртка над запросом и в общем случае работает медленнее, чем прямой запрос.
Обычно создаётся для удобства. чтобы упростить запрос на клиенте и не менять код, когда меняется структура БД. Чаше всего используется, если код разрабатывает один разраб, а БД другой.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
jetistyum
S.Chushkin
Не хочу спорить, возможно. В моих проектах это дало хороший прирост в производительности по сравнению с запуском сложного запроса с множеством JOIN, на живых данных.

но могу предположить что не были оптимизированы все индексы в исходных таблицах. Однако скорость с view (без добавления индексов) выросла в некоторых случаях в 4 раза.

Возможно ТС отпишется и скажет как у него получилось.
Не претендую на экспертное заключение wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.