MySQL で実行しているクエリがあります。ご覧のとおり、クエリのすべての部分がインデックス付きフィールドにあります。それにもかかわらず、クエリには永遠に時間がかかります (数十分、私が待つよりも長く)。Connect テーブルは、2 つの整数と 2 つのインデックス (1 つのフィールド 1、フィールド 2、もう 1 つのフィールド 2、フィールド 1) で構成されます。ソースとターゲットは、単一のインデックス付き int フィールドを持つテーブルです。すべてのインデックスを考えると、このクエリは数秒で完了すると予想していました。1: なぜそんなに時間がかかるのか、2: 高速化する方法について何か提案はありますか?
ありがとう!
mysql> explain
SELECT DISTINCT geneConnect.geneSymbolID FROM SNPEffectGeneConnector AS geneConnect
JOIN IndelSNPEffectConnector AS snpEConnect ON geneConnect.snpEffectID = snpEConnect.snpEffectID
JOIN InDels2 AS source ON source.id = snpEConnect.indelID
WHERE geneConnect.geneSymbolID NOT IN (
SELECT geneConnect.geneSymbolID FROM SNPEffectGeneConnector AS geneConnect
JOIN IndelSNPEffectConnector AS snpEConnect ON geneConnect.snpEffectID = snpEConnect.snpEffectID
JOIN InDels3 AS target ON target.id = snpEConnect.indelID);
+----+--------------------+-------------+-------+-------------------+----------+---------+-----------------------------------------------------------------------+------+--------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+-------------+-------+-------------------+----------+---------+-----------------------------------------------------------------------+------+--------------------------------+
| 1 | PRIMARY | source | index | id | id | 4 | NULL | 5771 | Using index; Using temporary |
| 1 | PRIMARY | snpEConnect | ref | snpEList | snpEList | 4 | treattablebrowser.source.id | 2 | Using index |
| 1 | PRIMARY | geneConnect | ref | snpEList | snpEList | 4 | treattablebrowser.snpEConnect.snpEffectID | 1 | Using where; Using index |
| 2 | DEPENDENT SUBQUERY | geneConnect | ref | snpEList,geneList | geneList | 4 | func | 1 | Using index |
| 2 | DEPENDENT SUBQUERY | target | index | id | id | 4 | NULL | 6297 | Using index; Using join buffer |
| 2 | DEPENDENT SUBQUERY | snpEConnect | ref | snpEList | snpEList | 8 | treattablebrowser.target.id,treattablebrowser.geneConnect.snpEffectID | 1 | Using index |
+----+--------------------+-------------+-------+-------------------+----------+---------+-----------------------------------------------------------------------+------+--------------------------------+
6行セット (0.01秒)