在線創建索引避免阻塞DML語句
更新時間 2025-02-05 09:37:24
最近更新時間: 2025-02-05 09:37:24
分享文章
本文為您介紹在線創建索引避免阻塞DML語句的具體操作。
-
新建索引
推薦使用加關鍵字concurrently的方式在線創建索引,此方式不阻塞DML、DQL語,不影響表的增、刪、改、查操作。
例如,在teledb_1表的id字段上創建索引語句如下:
teledb=# create index concurrently teledb_1_id_idx on teledb_1(id);
-
重建索引
TeleDB支持在相同字段上創建多個索引,重建索引推薦使用替換的方式,過程如下:
- 使用concurrently方式在線創建新的索引。
- 刪除原索引(記得設置lock_timeout)。
- analyze表更新統計信息。
-
更改主鍵
更改主鍵,推薦使用替換的方式,過程如下:
- 在線創建新的包含主鍵列的唯一索引。
- 執行以下SQL替換主鍵:
ALTER TABLE teledb_1 DROP CONSTRAINT teledb_1_pkey, ADD CONSTRAINT teledb_1_new_pkey PRIMARY KEY USING INDEX teledb_1_id_uidx; - analyze表更新統計信息。