在PostgreSQL中,
当我创建一个表并且不为其创建任何索引时,PostgreSQL是否会自动为该表创建一些默认索引?
当我以后多次更新和查询表时,PostgreSQL会足够聪明,根据我更新和查询表的频率和频率为我自动创建索引吗?
如果没有,那么PostgreSQL中的哪些命令可以帮助我手动选择可以改善表性能的索引?
谢谢。
答案 0 :(得分:1)
没有数据库引擎将自己创建索引。索引对性能(在修改记录时)有重要影响,而您的角色是了解和计算性能的得失,以做出明智/明智的决定。自动创建的唯一索引是PrimaryKey
索引。
您的数据库引擎唯一会“智能”的事情是何时以及如何使用已经存在的索引。这就是所谓的查询优化器,它的决策基于复杂的算法和内部统计信息。
有一些工具可以分析数据库如何建议某些索引。但是最好,最简单的方法是使用EXPLAIN
。