約8億のエントリを含む電子メールのテーブルがあり、それを約100,000の電子メールのリストと照合する必要があります。データベース内の電子メールエントリにインデックスが付けられます。
それを行うための最良のクエリは何でしょうか?照合したいエントリを使用して一時テーブルを作成し、それとメインテーブルに対してSELECTを実行しようとしましたが、それよりも高速である必要があるようです。複数のクエリの速度が低下しているようです。助言がありますか?
サーバーはCentOS6.3でMySQL5.5.27を実行しています。
編集:これが作成ステートメントです:
CREATE TEMPORARY TABLE temptable (Email varchar(50))
CREATE INDEX tempindex ON temptable (Email)
そして、これが私の質問です:
SELECT temptable.Email FROM temptable, biglist WHERE temptable.Email = biglist.Email
そして、これがEXPLAINの結果です。
+----+-------------+-----------+-------+---------------+-----------+---------+-----------------------+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+-------+---------------+-----------+---------+-----------------------+------+--------------------------+
| 1 | SIMPLE | temptable | index | tempindex | tempindex | 53 | NULL | 21 | Using index |
| 1 | SIMPLE | biglist | ref | idx_Email | idx_Email | 202 | datab.temptable.email | 1 | Using where; Using index |
+----+-------------+-----------+-------+---------------+-----------+---------+-----------------------+------+--------------------------+