2

以下のクエリは、ビューで 17 秒で実行されます。450,000 行あります。結合される 2 つの列にインデックスがあり、それらは FK です。結合列は BIGINTS です。とにかくこの男をスピードアップする方法はありますか?

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

説明

'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'

sims_classroom = 200100
sims_class_enrollment = 476396
4

1 に答える 1

2

書き込みが少し遅くなりますが、インデックスに必要なものがすべて揃っていないのは 1 列だけなので、sce に 2 列のインデックスを作成します。

classroom_id, user_id

これにより、mysql は実際のテーブルに移動する必要さえなくなります (説明ではどちらも「インデックスの使用」になります)。

于 2012-06-30T04:00:21.057 に答える