PostgreSQL 中的时间是什么意思

use*_*945 4 postgresql

我发现PostgreSQL中有两种类型的时间:

  1. \timing:返回查询执行时间以及将数据从服务器传输到客户端的时间成本。
  2. 解释分析:返回查询执行时间

他们正确吗?如何查看查询计划时间?
在什么范围内,查询执行时间是可以接受的?女士级别?

谢谢。

Pav*_*ule 5

\timing 是在客户端测量的时间。

EXPLAIN ANALYZE 是在服务器端测量的时间。

\计时更现实一些,因为结果可能会受到网络传输速度的影响。EXPLAIN ANALYZE 不太现实,因为您消除了网络速度影响(当您调查一些奇怪的时间时,这可能会很有趣),但它显示有关查询处理的详细信息。如果没有任何其他参数,计时测量会产生很大的开销(在最近的 PostgreSQL 版本中较少)。当你可以获得更现实的时间时,你可以使用

EXPLAIN (ANALYZE, TIMING OFF) SELECT ...
Run Code Online (Sandbox Code Playgroud)

测量时间以毫秒为单位 - 可接受的范围取决于使用情况 - 对于 Web 应用程序小于 50 毫秒,对于桌面应用程序小于 200 毫秒,对于快速分析小于 5 秒。但查询速度通常取决于 IO 速度,因此如果您必须处理 20GB 表聚合,那么您不能期望少于 100 秒(取决于必须处理表中的多大部分)。