在非常长的表(约100亿行)中搜索行时, CPU使用率仅为3%左右,进程处于D
状态仅与INSERT
一起看到,而不与SELECT
一起看到。
我想知道这是否是由于某些错误配置导致的,我可以达到更好的用法,从而加快SELECT
的速度。
SELECT * FROM my_table WHERE key IN (SELECT key FROM temp);
很显然,各个列key
都已建立索引。
编辑:我忘了指出我在寻找许多行和整数id列(不是唯一的)。例如,查找10,000个ID,每个ID平均发生100次。
编辑:以下是一些PRAGMA
语句及其结果,如果有用的话:
PRAGMA journal_size_limit;
-1
PRAGMA journal_mode;
delete
PRAGMA cache_size;
-2000
PRAGMA cache_spill;
483
PRAGMA max_page_count;
1073741823
PRAGMA page_count;
340456897
PRAGMA user_version;
0