加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

database – 在PostgreSQL表中创建多个索引的缺点

发布时间:2020-12-13 15:57:46 所属栏目:百科 来源:网络整理
导读:读完 documentation on indexes后我想 嘿,因为(在我的情况下)几乎总是从数据库读取比写入它更频繁地执行,为什么不在表中的大多数字段上创建索引? 这是正确的态度吗?除了插入更长时,还有其他任何缺点吗? 当然,索引将仅限于我在SELECT语句条件下实际使用的
读完 documentation on indexes后我想

嘿,因为(在我的情况下)几乎总是从数据库读取比写入它更频繁地执行,为什么不在表中的大多数字段上创建索引?

这是正确的态度吗?除了插入更长时,还有其他任何缺点吗?

当然,索引将仅限于我在SELECT语句条件下实际使用的字段.

解决方法

索引有几个缺点.
首先,他们消耗空间.这可能是无关紧要的,但如果您的桌子特别大,可能会产生影响.
其次,更重要的是,您需要记住索引在INSERTing新行,删除旧行或UPDATEing索引列的现有值时会有性能损失,因为现在DML语句不仅需要修改表的数据,而且指数也是一个.再次,这在很大程度上取决于您的应用程序用例.如果DML非常罕见以至于性能不成问题,那么这可能不是一个考虑因素.
第三(虽然这与我的第一点紧密相关),请记住,每次创建另一个数据库对象时,都会产生额外的维护开销 – 这是您必须偶尔重建的另一个索引,收集统计信息(取决于RDBMS)你正在使用的另一个目标是打击数据字典等.

底线全部归结为您的用例.如果您有经常运行的重要查询,并且可以通过此索引进行改进 – 那就去做吧.如果您在蓝色月亮中运行此查询一次,您可能不希望减慢所有INSERT语句的速度.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读