SQL Огромное время отправки данных после добавления таблицы - PullRequest
0 голосов
/ 27 марта 2020

У меня есть проблема, которую я не могу понять и решить.

У меня есть запрос SQL, подобный этому:

SELECT 
    t1.field1,
    t1.field2,
    t2.field3,
    etc...
    FROM 
      (SELECT field
       FROM table
       WHERE ...
      )AS offer
      INNER JOIN ...      
      INNER JOIN ...
      INNER JOIN ...    

    WHERE TRUE 

Этот один запрос работает хорошо и быстро.

начиная с 0,000108 проверка разрешений 0,000008 проверка разрешений 0,000004 проверка разрешений 0,000007 проверка разрешений 0,000004 проверка разрешений 0,000004 проверка разрешений 0,000005 Открытие таблиц 0,000046 После открытия таблиц 0,000009 Системная блокировка 0,000010 Блокировка таблиц 0,000008 init 0,000076 оптимизация 0,000034 статистика 0,001863 подготовка 0,000059 подготовка 0,000059 выполнение 0,00007 Отправка данных 0,000679 конец 0,000023 запрос конец 0,000006 закрытие таблиц 0,000004 удаление таблицы TMP 0,000017 закрытие таблиц 0,000004 разблокирование таблиц 0,000023 освобождение позиций 0,000010 обновление статуса 0,000021 очистка 0,000008

Отображение всего 122 741 строк, общее время запроса 0,0042 с.

Но когда я просто делаю это в производную таблицу

SELECT *
FROM(
  that query
) AS derived
WHERE TRUE

Это делает огромное время отправки данных ...

начиная с 0,000117 проверка разрешений 0,000010 проверка разрешений 0,000004 проверка разрешений 0,000006 проверка разрешений 0,000004 проверка разрешений 0,000004 проверка разрешений 0,000007 Открытие таблиц 0,000039 После открытия таблиц 0,000011 Блокировка системы 0,000010 Блокировка таблиц 0,000009 init 0,000096 Оптимизация 0,000044 Статистика 0,001911 Подготовка 0,000072 Подготовка 0,00008 Выполнение 0,0023838 Окончание 0,000049 Запрос конца 0,00000 Таблицы 0.000004 удаление таблицы tmp 0.000007 закрытие таблиц 0.000004 удаление таблицы tmp 0.000004 закрытие таблиц 0.000004 Разблокировка таблиц 0.000020 освобождение элементов 0.000016 статус обновления 0.000011 медленный запрос журнала 0.000064 очистка

Отображение 122 741 строк, общее время запроса 2.7593 с.)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...