【问题标题】:EXPLAIN ANALYZE on CREATE INDEX with PostgreSQL使用 PostgreSQL 对 CREATE INDEX 进行解释分析
【发布时间】:2017-09-15 00:16:12
【问题描述】:

我们可以在查询和 CREATE TABLE 等命令上执行 EXPLAIN ANALYZE,但似乎不能在 CREATE INDEX 上执行。

这是什么原因?必须只在其他地方获取有关索引的统计信息吗?

【问题讨论】:

  • 因为执行计划很简单:从表中读取所有行。创建索引没有太多“计划”
  • @a_horse_with_no_name 那么如何衡量构建索引所需的执行时间呢?
  • 你运行它
  • 我的意思是说那是运行时?如果我严格要求构建索引所花费的执行时间怎么办?
  • @a_horse_with_no_name 条件索引怎么样。我想在生产中大约有 240m 行的表上创建一个条件索引,但条件只会覆盖

标签: postgresql indexing explain


【解决方案1】:

要获得创建索引的时间,您可以执行以下操作:

postgres=# select * from now();
postgres=# create index foo on table(col);
postgres=# select * from now();

在创建索引时键入最后一个命令(select * from now()),请务必按 Enter,一旦索引创建完成,它将运行此命令。您将在索引创建之前和之后得到时间戳。

【讨论】:

  • 或者干脆在psql中使用\timing on
  • 如果您要在 BEGIN/COMMIT 块中运行它,请使用 timeofday() 而不是 now()。 Now() 总是在事务开始时为您提供时间。
猜你喜欢
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 2016-08-02
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
相关资源
最近更新 更多