PostgreSQL是否自动创建表的索引?

时间:2018-07-11 23:45:21

标签: postgresql

在PostgreSQL中,

  • 当我创建一个表并且不为其创建任何索引时,PostgreSQL是否会自动为该表创建一些默认索引?

  • 当我以后多次更新和查询表时,PostgreSQL会足够聪明,根据我更新和查询表的频率和频率为我自动创建索引吗?

  • 如果没有,那么PostgreSQL中的哪些命令可以帮助我手动选择可以改善表性能的索引?

谢谢。

1 个答案:

答案 0 :(得分:1)

没有数据库引擎将自己创建索引。索引对性能(在修改记录时)有重要影响,而您的角色是了解和计算性能的得失,以做出明智/明智的决定。自动创建的唯一索引是PrimaryKey索引。

您的数据库引擎唯一会“智能”的事情是何时以及如何使用已经存在的索引。这就是所谓的查询优化器,它的决策基于复杂的算法和内部统计信息。

有一些工具可以分析数据库如何建议某些索引。但是最好,最简单的方法是使用EXPLAIN

https://www.postgresql.org/docs/9.5/static/sql-explain.html