Sql 删除不可用的索引是否更好?

Sql 删除不可用的索引是否更好?,sql,database,postgresql,indexing,postgresql-9.5,Sql,Database,Postgresql,Indexing,Postgresql 9.5,下面查询的结果显示了索引统计历史记录。如果在TotalNumberOfScan中删除返回值为0的索引是否更好 当然,您应该删除不使用的索引。索引加快了某些操作,但代价是——每次插入、删除或某些更新时都需要更新索引 这是一篇关于在更新、删除和插入时维护额外索引的成本的好文章。例如,在有两个索引的表中插入索引的时间几乎是有一个索引的表的两倍。您肯定应该删除不使用的索引。索引加快了某些操作,但代价是——每次插入、删除或某些更新时都需要更新索引 这是一篇关于在更新、删除和插入时维护额外索引的成本的好文章

下面查询的结果显示了索引统计历史记录。如果在TotalNumberOfScan中删除返回值为0的索引是否更好


当然,您应该删除不使用的索引。索引加快了某些操作,但代价是——每次插入、删除或某些更新时都需要更新索引


这是一篇关于在更新、删除和插入时维护额外索引的成本的好文章。例如,在有两个索引的表中插入索引的时间几乎是有一个索引的表的两倍。

您肯定应该删除不使用的索引。索引加快了某些操作,但代价是——每次插入、删除或某些更新时都需要更新索引


这是一篇关于在更新、删除和插入时维护额外索引的成本的好文章。例如,在有两个索引的表中插入的时间几乎是有一个索引的同一个表的两倍。

以下是我查找所有无用索引的金标准查询:

SELECT s.schemaname,
       s.relname AS tablename,
       s.indexrelname AS indexname,
       pg_relation_size(s.indexrelid) AS index_size
FROM pg_catalog.pg_stat_user_indexes s
   JOIN pg_catalog.pg_index i ON s.indexrelid = i.indexrelid
WHERE s.idx_scan = 0      -- has never been scanned
  AND 0 <>ALL (i.indkey)  -- no index column is an expression
  AND NOT i.indisunique   -- is not a UNIQUE index
  AND NOT EXISTS          -- does not enforce a constraint
         (SELECT 1 FROM pg_catalog.pg_constraint c
          WHERE c.conindid = s.indexrelid)
ORDER BY pg_relation_size(s.indexrelid) DESC;

你需要考虑索引有其他用途,而不是加速按顺序和按顺序:

许多约束是通过索引实现的,例如主键

表达式上的索引使PostgreSQL收集索引表达式的统计信息,这有助于优化器


有关详细信息,请参阅。

以下是我的金标准查询,用于查找所有无用的索引:

SELECT s.schemaname,
       s.relname AS tablename,
       s.indexrelname AS indexname,
       pg_relation_size(s.indexrelid) AS index_size
FROM pg_catalog.pg_stat_user_indexes s
   JOIN pg_catalog.pg_index i ON s.indexrelid = i.indexrelid
WHERE s.idx_scan = 0      -- has never been scanned
  AND 0 <>ALL (i.indkey)  -- no index column is an expression
  AND NOT i.indisunique   -- is not a UNIQUE index
  AND NOT EXISTS          -- does not enforce a constraint
         (SELECT 1 FROM pg_catalog.pg_constraint c
          WHERE c.conindid = s.indexrelid)
ORDER BY pg_relation_size(s.indexrelid) DESC;

你需要考虑索引有其他用途,而不是加速按顺序和按顺序:

许多约束是通过索引实现的,例如主键

表达式上的索引使PostgreSQL收集索引表达式的统计信息,这有助于优化器


有关详细信息,请参阅。

这真是一个很好的查询,感谢您的努力,但我需要问您关于最后一列的情况,该列称为index\u size,它以字节或千字节或什么为单位给出大小?以字节为单位。这真是一个很好的查询,感谢您的努力,但我需要问您关于最后一列的情况,它称为index_size,它给出的大小以字节或千字节或什么为单位?这是以字节为单位的。