我只是想知道在PostgreSQL中执行相同查询时有不同时间的原因是什么。
例如:select * from datas;
第一次45ms
第二次相同的查询需要55ms
,下次需要一些时间。任何人都可以说有非静态时间的原因是什么。
答案 0 :(得分:2)
简单,每次数据库必须读取整个表并检索行。数据库中可能发生了100种不同的事情,可能会导致几毫秒的差异。没有必要恐慌。这必然会发生。您可以期望操作以相同的毫秒精度进行同样的操作。如果存在巨大差异,那么必须要看一下。
答案 1 :(得分:1)
这就是每台计算机上每个应用程序的情况。有时操作系统比其他时候更繁忙,因此需要更多时间来获取您要求的内存,或者您的应用程序获得更少的CPU时间片或其他任何内容。
答案 2 :(得分:1)
您是否在表格中应用了索引。它还可以提高速度!
从
编译解释 引用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
之后,将记录执行时间,您将能够确切地知道执行查询的程度有多糟糕(或好)。