sqlite索引 where条件 联合索引 组合索引 Multicolumn Indexes

DELETE 
FROM ngrams_2 
WHERE EXISTS (
    SELECT 1 
    FROM ngrams_3 
    WHERE ngrams_2.word1 = ngrams_3.word1 
    AND ngrams_2.word2 = ngrams_3.word2
    UNION ALL
    SELECT 1 
    FROM ngrams_3 
    WHERE ngrams_2.word1 = ngrams_3.word2 
    AND ngrams_2.word2 = ngrams_3.word3
);

 

这样可以用到多列索引 2秒

 

DELETE FROM ngrams_2
WHERE EXISTS (
    SELECT 1
    FROM ngrams_3
    WHERE (
        ngrams_2.word1 = ngrams_3.word1
        AND ngrams_2.word2 = ngrams_3.word2
    )
    OR (
        ngrams_2.word1 = ngrams_3.word2
        AND ngrams_2.word2 = ngrams_3.word3
    )
);

 

这样只能用到单列索引,很慢 10分钟还没好(更,奇怪,我重新建了一次索引,又可以了

posted @ 2025-01-26 22:25  hrdom  阅读(20)  评论(0)    收藏  举报