2012-06-29 64 views
2

下面的查詢在17秒內在視圖中執行。有450,000行。我有一個關於兩列加入的索引,他們是FK。連接列是BIGINTS。無論如何加快這個傢伙?MySQL加入性能

SELECT c.id, sce.user_id 
FROM sims_classroom c 
JOIN sims_class_enrollment sce ON c.id = sce.classroom_id 

EXPLAIN

'1', 'SIMPLE', 'c', 'index', 'PRIMARY', 'PRIMARY', '8', NULL, '211213', 'Using index' 
'1', 'SIMPLE', 'sce', 'ref', 'fk_class_enrollment_classroom_id', 'fk_class_enrollment_classroom_id', '9', 'ngsp.c.id', '1', 'Using where' 

ROWS

sims_classroom = 200100 
sims_class_enrollment = 476396 
+3

在查詢中使用[EXPLAIN](http://dev.mysql.com/doc/refman/5.5/en/explain.html),並將結果提供給我們。 – Jocelyn

+0

「sims_classroom」和「sims_class_enrollment」中有多少行 –

+0

更新了問題。 –

回答

2

它會減慢寫一點點,但因爲你是擁有一切的只有一個總之,你需要在你的索引,我會爲sce做一個兩列索引:

classroom_id, user_id 

這將導致mysql甚至不需要去實際的表(這兩個將在'使用索引'的解釋)。