PostgreSQL中索引的影响

时间:2019-10-29 23:01:17

标签: postgresql database-design database-indexes

我在一个PostgreSQL表中添加了一些索引,实际上我将它们添加到了另一张表的外键的所有列中。

现在,使用这些列的SELECT语句比以前快5到10倍,

SELECT * FROM table where indexed_column_fk=5000

但是普通的SELECT语句

SELECT * from table

慢很多(慢了将近2倍)。

这怎么可能?

当我使用EXPLAIN ANALYZE时,我也会得到索引增加的总成本吗?

更新:从表中选择* 带有索引

Seq Scan on my_table  (cost=0.00..26440.40 rows=343040 width=86) (actual time=0.292..756.614 rows=343040 loops=1)
Planning Time: 72.249 ms
Execution Time: 766.601 ms

没有索引(当我删除它们时)

Seq Scan on my_table  (cost=0.00..26440.40 rows=343040 width=86) (actual time=0.022..194.712 rows=343040 loops=1)
Planning Time: 0.095 ms
Execution Time: 204.613 ms

我使用pgAdmin 4在本地PC上运行

更新2

缓存预热后的结果

select * from table

更新3-出于说明目的:当我使用索引扫描表时

enter image description here

0 个答案:

没有答案