Postgres 中的外键和主键索引
在 PostgreSQL 中,某些数据库对象会自动接收索引,而其他数据库对象可能需要手动创建。本文研究了 PostgreSQL 自动生成索引的具体情况,并提供了一种方法来识别与表关联的所有索引。
自动索引对象
PostgreSQL 自动创建索引关于主键和唯一约束。通过强制唯一性,这些索引在确保数据完整性方面发挥着至关重要的作用。
识别自动生成的索引
PostgreSQL 通过 NOTICE- 通知用户任何动态创建的索引 -级别消息。这些通知出现在 psql 控制台和系统日志中。此外,d 命令在其输出中显示自动生成的索引。
外键索引
尽管自动索引主键和唯一约束,PostgreSQL 仍避免索引外键参考。这种遗漏源于这样一个事实:在引用列上创建索引并不总是必要的,并且可能会带来性能问题。
创建外键索引
如果认为有益,用户可以在外键列上手动创建索引。但是,重要的是要考虑对 DML 操作的潜在影响,因为每个索引在 INSERT、UPDATE 和 DELETE 期间都会产生轻微的性能开销。
其他注意事项
在主外键关系的上下文中,两个外键构成主键,会在主键上自动创建索引。在这种情况下,外键列上的附加索引可能是多余的。
确定外键上引用端索引的需要需要仔细分析。虽然通常建议这样做,但最终取决于索引使用的频率。
以上是PostgreSQL 会自动索引外键吗?的详细内容。更多信息请关注PHP中文网其他相关文章!