sql - Postgres 索引统计

标签 sql postgresql indexing postgresql-9.6

ANALYZE 收集索引统计信息还是仅收集表统计信息?

获取最新索引使用情况和统计​​信息的正确方法是什么?

我的版本是Postgres 9.6

最佳答案

ANALYZE 收集表列中值的分布统计信息。

使用普通索引,您不需要收集索引的任何统计信息,因为您需要知道的只是列值的分布。

因此,您在 CREATE INDEX 之前还是之后 ANALYZE 并不重要。

此规则的异常(exception)是表达式上的索引。

对于这些,ANALYZE 将收集有关表达式值分布的数据,因此 ANALYZECREATE INDEX<如果在查询中使用该表达式, 将始终改进规划器的估计。无论索引最终是否在查询执行期间被使用,都是如此。

索引使用情况的统计数据是完全不同的事情。您可以在 pg_stat_all_indexes 中找到它们。

关于sql - Postgres 索引统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50385813/

相关文章:

sql - 在 PostgreSQL 中创建触发器时出现 NEW 语法错误

r - PostGIS 和 R - 更快、更小地获取数据

javascript - 从所选元素中获取索引

SQL 字符串连接到表

java - Hibernate 与 JDBC 动态数据库连接

mysql - 何时/为何使用(组合)索引?

SQL Server 2008 插入时出现 "IDENTITY_INSERT is ON"错误

postgresql - 将一列与数组的每个值相乘

python - 使用单独的数据框将多索引映射到现有的 pandas 数据框列

search - Sitecore 索引中的 urllink 返回带有 "/sitecore/shell/~/media/..."的媒体 url