我正在使用PostgreSQL 9.3。我有一个包含超过6亿行数据的表的数据库。当我首次连接到该数据库时,第一个查询非常缓慢:
explain analyze select * from request_log limit 1;
Limit (cost=0.00..0.02 rows=1 width=61) (actual time=481439.127..481439.129 rows=1 loops=1)
-> Seq Scan on request_log (cost=0.00..13996870.79 rows=651159679 width=61) (actual time=481439.123..481439.123 rows=1 loops=1)
Total runtime: 481440.488 ms
我不明白为什么顺序扫描只读取第一行后不停止?
request_log
上有没有任何索引? - ninesidedorder by
,以查看是否使用索引可以提高访问效率。 - ninesidedrequest_log
上的统计数据是否可能已经过时? - ninesided