执行相同的查询会在postgresql中产生时差

时间:2013-09-20 04:22:32

标签: postgresql

我只是想知道在PostgreSQL中执行相同查询时有不同时间的原因是什么。

例如:select * from datas;

第一次45ms 第二次相同的查询需要55ms,下次需要一些时间。任何人都可以说有非静态时间的原因是什么。

3 个答案:

答案 0 :(得分:2)

简单,每次数据库必须读取整个表并检索行。数据库中可能发生了100种不同的事情,可能会导致几毫秒的差异。没有必要恐慌。这必然会发生。您可以期望操作以相同的毫秒精度进行同样的操作。如果存在巨大差异,那么必须要看一下。

答案 1 :(得分:1)

这就是每台计算机上每个应用程序的情况。有时操作系统比其他时候更繁忙,因此需要更多时间来获取您要求的内存,或者您的应用程序获得更少的CPU时间片或其他任何内容。

答案 2 :(得分:1)

您是否在表格中应用了索引。它还可以提高速度!

编译解释

matt b

引用

EXPLAIN statement?帮助我们显示PostgreSQL计划程序为提供的语句生成的执行计划。

  

执行计划显示了如何   该语句引用的表将被扫描 - 通过普通   顺序扫描,索引扫描等 - 如果是多个表   引用,将使用什么连接算法来汇总   每个输入表中所需的行

参考Pablo Santa Cruz 您需要更改PostgreSQL配置文件。

启用此属性:

log_min_duration_statement = -1        # -1 is disabled, 0 logs all statements                                    
                                       # and their durations, > 0 logs only                                       
                                       # statements running at least this number                                  
                                       # of milliseconds   

之后,将记录执行时间,您将能够确切地知道执行查询的程度有多糟糕(或好)。

相关问题