Mat*_*udy 7 sql postgresql indexing postgresql-9.1
我有以下结构.
CREATE TABLE join_table (
id integer NOT NULL,
col_a integer NOT NULL,
col_b integer NOT NULL
)
CREATE INDEX index_on_col_a ON join_table USING btree (col_a);
CREATE INDEX index_on_col_b ON join_table USING btree (col_b);
CREATE UNIQUE INDEX index_on_col_a_and_col_b ON join_table USING btree (col_a, col_b);
Run Code Online (Sandbox Code Playgroud)
col_a和col_b上也有外键.
显然index_on_col_a不再需要,但是保留或删除它是否有成本或好处?
我的猜测是;
col_a如果我保留它,选择使用just 可能会更快您可以删除索引col_a.PostgreSQL是能够使用组合索引如果查询的col_a,也是可以使用索引,如果你查询的col_a和col_b.这些查询类型可以使用组合索引:
WHERE col_a = 'val'
WHERE col_a = 'val' AND col_b = 'val'
Run Code Online (Sandbox Code Playgroud)
将合并的索引不能仅用于查询col_b或OR结col_a和col_b.因此,col_b如果您经常只查询查询,则附加索引可能有意义col_b.
编辑:所以:你没有创造优势index_on_col_a,但你的写入速度较慢.算了吧.
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |