如何避免对此查询使用临时表并仍然实现相同的目标?如何避免对此简单查询使用临时表
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 2010-11-11 20:12:53
给定单元的大约150个屏幕截图,每个屏幕截图可能需要12-15个单元 – Webnet 2010-11-11 21:42:47
您能否提供一个新查询看起来像您正在制作的示例(最好使用EXPLAIN以及)? – 2010-11-12 07:50:41