Release Notes
Product Announcements
-- Disable the index (takes effect immediately, making the index invisible to the optimizer)ALTER INDEX idx_name UNUSABLE;-- Enable the index (without rebuilding, the index becomes visible to the optimizer again)ALTER INDEX idx_name USABLE;
-- InputCREATE TABLE test_table (id int, val text);
-- OutputCREATE TABLE;
-- InputINSERT INTO test_table SELECT i, 'val' || i FROM generate_series(1, 1000) i;
-- OutputINSERT 0 1000;
-- InputCREATE INDEX idx_test_id ON test_table (id);
-- OutputCREATE INDEX;
-- InputANALYZE test_table;
-- OutputANALYZE;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid = 'idx_test_id'::regclass;
-- Outputindex_name | indisvalid-------------+------------idx_test_id | t(1 row);
-- InputEXPLAIN (COSTS OFF) SELECT * FROM test_table WHERE id = 100;
-- OutputQUERY PLAN---------------------------------------Index Scan using idx_test_id on test_tableIndex Cond: (id = 100)(2 rows);
-- InputALTER INDEX idx_test_id UNUSABLE;
-- OutputALTER INDEX;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid = 'idx_test_id'::regclass;
-- Outputindex_name | indisvalid-------------+------------idx_test_id | f(1 row);
-- InputEXPLAIN (COSTS OFF) SELECT * FROM test_table WHERE id = 100;
-- OutputQUERY PLAN-------------------------------Seq Scan on test_tableFilter: (id = 100)(2 rows);
-- InputALTER INDEX idx_test_id USABLE;
-- OutputALTER INDEX;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid = 'idx_test_id'::regclass;
-- Outputindex_name | indisvalid-------------+------------idx_test_id | t(1 row);
-- InputEXPLAIN (COSTS OFF) SELECT * FROM test_table WHERE id = 100;
-- OutputQUERY PLAN---------------------------------------Index Scan using idx_test_id on test_tableIndex Cond: (id = 100)(2 rows);
-- InputCREATE TABLE test_part (id int, val text) PARTITION BY RANGE (id);
-- OutputCREATE TABLE;
-- InputCREATE TABLE test_part_p1 PARTITION OF test_part FOR VALUES FROM (1) TO (500);CREATE TABLE test_part_p2 PARTITION OF test_part FOR VALUES FROM (500) TO (1001);
-- OutputCREATE TABLECREATE TABLE;
-- InputINSERT INTO test_part SELECT i, 'val' || i FROM generate_series(1, 1000) i;
-- OutputINSERT 0 1000;
-- InputCREATE INDEX idx_test_part_id ON test_part (id);
-- OutputCREATE INDEX;
-- InputANALYZE test_part;
-- OutputANALYZE;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid::regclass::text LIKE '%test_part%';
-- Outputindex_name | indisvalid-------------------------+------------idx_test_part_id | ttest_part_p1_id_idx | ttest_part_p2_id_idx | t(3 rows);
-- InputALTER INDEX idx_test_part_id UNUSABLE;
-- OutputALTER INDEX;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid::regclass::text LIKE '%test_part%';
-- Outputindex_name | indisvalid-------------------------+------------idx_test_part_id | ftest_part_p1_id_idx | ttest_part_p2_id_idx | t(3 rows);
-- InputALTER INDEX test_part_p1_id_idx UNUSABLE;
-- OutputALTER INDEX;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid::regclass::text LIKE '%test_part%';
-- Outputindex_name | indisvalid-------------------------+------------idx_test_part_id | ftest_part_p1_id_idx | ftest_part_p2_id_idx | t(3 rows);
-- InputEXPLAIN (COSTS OFF) SELECT * FROM test_part WHERE id = 100;
-- OutputQUERY PLAN-------------------------------------------------------Seq Scan on test_part_p1 test_partFilter: (id = 100)(2 rows);
-- InputEXPLAIN (COSTS OFF) SELECT * FROM test_part WHERE id = 900;
-- OutputQUERY PLAN-------------------------------------------------------------------------------Index Scan using test_part_p2_id_idx on test_part_p2 test_partIndex Cond: (id = 900)(2 rows);
-- InputALTER INDEX idx_test_id USABLE;
-- OutputALTER INDEX;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid = 'idx_test_id'::regclass;
-- Outputindex_name | indisvalid-------------+------------idx_test_id | t(1 row);
-- InputBEGIN;
-- OutputBEGIN;
-- InputALTER INDEX idx_test_id UNUSABLE;
-- OutputALTER INDEX;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid = 'idx_test_id'::regclass;
-- Outputindex_name | indisvalid-------------+------------idx_test_id | f(1 row);
-- InputROLLBACK;
-- OutputROLLBACK;
-- InputSELECT indexrelid::regclass AS index_name, indisvalidFROM pg_indexWHERE indexrelid = 'idx_test_id'::regclass;
-- Outputindex_name | indisvalid-------------+------------idx_test_id | t(1 row);
-- InputALTER INDEX idx_test_id UNUSABLE;
-- OutputALTER INDEX;
-- InputINSERT INTO test_table VALUES (9999, 'new_value');
-- OutputINSERT 0 1;
-- InputALTER INDEX idx_test_id USABLE;
-- OutputALTER INDEX;
-- InputEXPLAIN (COSTS OFF) SELECT * FROM test_table WHERE id = 9999;
-- OutputQUERY PLAN---------------------------------------Index Scan using idx_test_id on test_tableIndex Cond: (id = 9999)(2 rows);
-- InputSELECT * FROM test_table WHERE id = 9999;
-- Outputid | val------+-----------9999 | new_value(1 row);
Apakah halaman ini membantu?
Anda juga dapat Menghubungi Penjualan atau Mengirimkan Tiket untuk meminta bantuan.
masukan