【发布时间】:2016-12-23 12:34:05
【问题描述】:
在我的 PostgreSQL 9.3 数据库中,我有一个表“my_table”,它有 5 列:
col1、col2、col3、col4 和 col5
前两列(col1 和 col2)包含在唯一索引中,但其他 3 列上没有任何索引。
此表与 3-rd 方实用程序一起使用,该实用程序以下列方式执行更新:
"update my_table set col3 = "some value"
where col1 = ...
and col2 = ...
and col3 = ...
and col4 = ...
and col5 = ..."
这些更新运行速度极慢,但我无法修改此自动生成的 SQL。
我只能对“my_table”表进行更改。
为了适应这种类型的更新查询并提高其性能,我能做的最好的事情是什么?
【问题讨论】:
-
如果表具有唯一索引 (col1, col2),那么其他树条件实际上与总执行时间无关,因此您无能为力。
-
注意:'some value' 应该用单引号括起来,双引号用于标识符。顺便说一句:没有主键(或候选键)的表本质上是没有意义的。
标签: postgresql