Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Долгий LEFT JOIN, Чем и как заменить в запросе LEFT JOIN
mikhailidi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 1
Пользователь №: 43320
На форуме: 3 месяца, 6 дней
Карма:




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

Буду рад каждому ответу !
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
jetistyum  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 2605
Пользователь №: 5568
На форуме: 8 лет, 4 месяца, 27 дней
Карма: 30




попробуй сделать VIEW по данному запросу и выбирать данные из VIEW
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14973
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев
Карма: 443




Цитата (mikhailidi @ 30.08.2016 - 15:27)
Индексы в базе пресутствуют.

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


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

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

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

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 9 дней
Карма: 40




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

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

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


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
jetistyum  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 2605
Пользователь №: 5568
На форуме: 8 лет, 4 месяца, 27 дней
Карма: 30




S.Chushkin
Не хочу спорить, возможно. В моих проектах это дало хороший прирост в производительности по сравнению с запуском сложного запроса с множеством JOIN, на живых данных.

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

Возможно ТС отпишется и скажет как у него получилось.
Не претендую на экспертное заключение wink.gif
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса