Ответы пользователя по тегу Оптимизация SQL-запросов
  • Можно ли оптимизировать данный запрос или смотреть в сторону денормализации?

    @Vitsliputsli
    Зачем STRAIGHT_JOIN?
    Если в таблице всего 20000 записей, а индекс выбрал 18049, есть ли вообще смысл в таком громоздком составном индексе, если все равно пришлось почти всю таблицу обойти? Вполне может оказаться что без него будет быстрее, или оставить только основной столбец, наиболее различающийся, и столбец для сортировки.
    Ответ написан
    Комментировать
  • Оптимизация SQL запроса. Что можно сделать?

    @Vitsliputsli
    нужно так:
    SELECT 
            dstnum AS t2dstnum, 
            MAX(calldate) AS t2lastcall 
        FROM cdr 
        WHERE route = "out" 
        GROUP BY dstnum

    аналитика здесь не нужна, только агрегатная функция с группировкой. В итоге, при прохождении таблицы мы не собираем дубликаты, а берем только нужные строки. Иначе, будет создана временная таблица со множеством ненужных дубликатов, на удаление которых у DISTINCT уйдет время. Судя по работе запроса, в PostgreSQL оптимизатор сам догадывается что нужно сделать именно так, в MySQL нужно задавать явно.
    Ответ написан
    Комментировать