小编Evg*_*eny的帖子

为什么 SELECT * 比按名称选择所有列(以不同的列顺序)要快得多?

在包含 a、b、c、d、e、f、g、h、i、j、k 列的表上,我得到:

select * from misty order by a limit 25;
Time: 302.068 ms
Run Code Online (Sandbox Code Playgroud)

和:

select c,b,j,k,a,d,i,g,f,e,h from misty order by a limit 25;
Time: 1258.451 ms
Run Code Online (Sandbox Code Playgroud)

有没有办法让按列选择的速度一样快?

更新:

表上没有索引,新创建的

这是解释分析,似乎没有太大帮助:

explain analyze select * from misty order by a limit 25;

Limit  (cost=43994.40..43994.46 rows=25 width=190) (actual time=404.958..404.971 rows=25 loops=1)
->  Sort  (cost=43994.40..45731.11 rows=694686 width=190) (actual time=404.957..404.963 rows=25 loops=1)
     Sort Key: a
     Sort Method: top-N heapsort  Memory: 28kB
     ->  Seq Scan on misty  (cost=0.00..24390.86 rows=694686 width=190) (actual time=0.013..170.945 rows=694686 …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.2

12
推荐指数
1
解决办法
4846
查看次数

标签 统计

postgresql ×1

postgresql-9.2 ×1