Copying to tmp table - 100 секунд - MySQL

Узнай цену своей работы

Формулировка задачи:

Локально под WINDOWS 10 используется XAMPP. В таблицах по 17 тыс. записей. Следующий запрос:
SELECT
    i.*
FROM
    qf_items AS i
LEFT JOIN qf_filter_price AS price ON price.qf_item = i.qf_id
LEFT JOIN qf_filter_instock AS instock ON instock.qf_item = i.qf_id
WHERE
    i.qf_parent = 3
AND price.qf_value > 0
AND instock.qf_value IN (122, 123, 124)
GROUP BY
    i.qf_id
ORDER BY
    price.qf_value
LIMIT 0,
 16
выполняется более 100 секунд! EXPLAIN:
1 SIMPLE price range PRIMARY,item, value,item,value value 4   8121 Using where; Using index; Using temporary; Using filesort
1 SIMPLE i eq_ref PRIMARY,qf_id PRIMARY 4 jewel.price.qf_item 1 Using where
1 SIMPLE instock ref PRIMARY,item, value,item,value PRIMARY 4 jewel.price.qf_item 1 Using where; Using index
Профилирование запроса: Всё началось вчера. До этого больше месяца все локальные запросы тоже отрабатывались быстро. Но при переносе БД на рабочий сервер со всей структурой и всеми данными всё просто летает и сейчас. Может что сломалось локально?! Буду рад ответам. Заранее спасибо.

Решение задачи: «Copying to tmp table - 100 секунд»

textual
Листинг программы
SHOW VARIABLES WHERE Variable_name LIKE '%buffer%';

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5