select docid from A where docid IN (select distinct(docid) from B)
それはデータのサイズごとに長すぎる秒を取ります。MySQLは
以下は両方のテーブルの詳細です。
Table A :
| docid | int(11) | NO | PRI | NULL | |
Total number of entries = 500 (all entries are unique)
Table B:
| docid | int(11) | YES | | NULL | |
Total number of entries = 66508
(number of unique entries are 500)
mysql version : 5.2
私だけselect docid from A
を実行するとselect docid from B
は0.07秒を取っている間、それは0.00秒、 かかります。
なぜサブクエリを使用するINクエリが33秒かかるのですか?私は何か間違っているのですか?
このクエリで何を達成したいですか? – Sleeperson
私はこのクエリが1秒で実行されるはずです。なぜこれは時間がかかりすぎるのですか? – Kunal
'desc select docid from A docid IN(Bからselect distinct(docid));'オーバーヘッドは、入力する必要のある 'IN()'と一致するようにスキャンする必要があるためです。 – ajreal