python – Sqlite3比grep慢约6倍
发布时间:2020-12-20 11:38:37 所属栏目:Python 来源:网络整理
导读:我有一个188万行的表和一个188万行的文本文件,如下所示: CREATE TABLE trigram (count integer,A text,B text,C text)time echo 'select * from trigram where C="mailman";'|sqlite3 3g.db18.419 seconds.time grep 'mailman$' N-Grams/3g3.137 seconds 或
我有一个188万行的表和一个188万行的文本文件,如下所示:
CREATE TABLE trigram (count integer,A text,B text,C text) time echo 'select * from trigram where C="mailman";'|sqlite3 3g.db 18.419 seconds. time grep 'mailman$' N-Grams/3g 3.137 seconds 或者更复杂的查询 time grep 'the [^ ]* mailman$' N-Grams/3g 2.879 seconds time echo 'select * from trigram where A="the" and C="mailman";'|sqlite3 3g.db 15.839 seconds 有什么方法可以加快sqlite3的速度吗? 解决方法
创建索引:
CREATE INDEX idx_trigram_col_c ON trigram(C); 然后再试一次. 您可以使用覆盖索引在第二个查询上获得更快的速度: CREATE INDEX idx_trigram_col_c ON trigram(C,A); 要么 CREATE INDEX idx_trigram_col_c ON trigram(A,C); (如果列具有不同的分布,则首先使用更多的值). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |