Как я могу избежать использования временной таблицы для этого запроса и выполнения той же цели?Как избежать использования временной таблицы для этого простого запроса
EXPLAIN EXTENDED
SELECT DISTINCT id, view_count
FROM
screenshot_udb_affect_assoc
INNER JOIN
screenshot ON id = screenshot_id
WHERE unit_id = 110 LIMIT 0, 6
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE screenshot_udb_affect_assoc ref screenshot_id,unit_id unit_id 4 const 34 100.00 Using temporary
1 SIMPLE screenshot eq_ref PRIMARY PRIMARY 4 source_core.screenshot_udb_affect_assoc.screenshot... 1 100.00
Я обновил запрос не использовать RAND()
больше и вместо LIMIT
будут рандомизированы с помощью PHP. Хотя он по-прежнему показывает, что он использует временную таблицу
Подходит ли 'unit_id' к' screensho't? Сколько скриншотов существует с 'unit_id = 110'? Сколько «screenshot_udb_affect_assoc' за« скриншот »? – Quassnoi
Примерно 150 снимков экрана для данного устройства, возможно, 12-15 единиц на скриншот – Webnet
Не могли бы вы привести пример того, как выглядит новый запрос, который вы создаете (желательно с EXPLAIN)? –