次のクエリを実行したかった:
-- Main Query
SELECT COUNT(*) FROM table_name WHERE device_id IN
(SELECT DISTINCT device_id FROM table_name WHERE NAME = 'SOME_PARA')
この次のクエリ(メインクエリからのサブクエリ):
SELECT DISTINCT device_id FROM table_name WHERE NAME = 'SOME_PARA'
7秒で実行され、210万行のテーブルから2691行が得られます。
上記のメインクエリを実行しましたが、5分以上待機しても実行されています。
最後に、サブクエリを個別に実行し、結果から2691レコードを取得して、次のクエリを実行しました。
-- Main Query (improvised)
SELECT COUNT(*) FROM table_name WHERE device_id IN
("device_id_1", "device_id_2", ....., "device_id_2691")
驚いたことに、これは私に40秒以内に答えを与えました。
何が得られますか?MySQLが私が使用したのと同じ手法を使用して、すぐに答えを出さないのはなぜですか?私は何か間違ったことをしていますか?