Lau*_*ire 6 postgresql indexing primary-key composite-index composite-primary-key
我有一个带有复合主键的(大)表,由 5 列(a、b、c、d、e)组成。
我想有效地选择具有给定值的其中两列(a + e)的所有行。
在 PostgreSQL 中,我需要一个索引吗?或者数据库会使用主键(甚至部分使用?)
我看过下面的帖子,其中指定 MySQL 可以使用多列索引的最左边部分来有效地查询行。但我在复合主键上没有找到 PostgreSQL 的任何内容。
为了获得最佳性能,您需要在(a, e).
如果这是一个选项,您可以删除主键并将其替换为 上的主键(a, e, b, c, d)。主键索引将支持您的查询,并且就唯一性而言它同样好。
您还可以在 上尝试单列索引(e)。PostgreSQL 可以组合对多个索引的扫描。这不会像多列索引那么快,但生成的索引会更小。
| 归档时间: |
|
| 查看次数: |
2659 次 |
| 最近记录: |