Postgresql
在 postgresql 中刪除索引
我錯誤地創建了一個索引,現在我試圖刪除該索引。由於表很大,刪除索引需要很多時間。有沒有其他方法可以快速刪除索引?
你可以試試
DROP INDEX [ CONCURRENTLY ] name
- 同時
刪除索引而不鎖定索引表上的並發選擇、插入、更新和刪除。一個正常的 DROP INDEX 獲取表的排他鎖,阻塞其他訪問,直到索引刪除可以完成。使用此選項,該命令將等待,直到衝突事務完成。
- 這是 postgres 9.2 的文件: http ://www.postgresql.org/docs/9.2/static/sql-dropindex.html
注意:此功能在 postgres 9.2 之前不可用。
- 這是 postgres 9.1 的文件: http ://www.postgresql.org/docs/9.1/static/sql-dropindex.html
- 這類似於
ONLINE = ON
SQL Server 中的選項: http ://technet.microsoft.com/en-us/library/ms176118.aspx
不知何故,maintainance_work_mem 不被視為維護操作,它對加速刪除索引過程沒有任何意義。
同時刪除索引似乎是唯一的選擇,但我不建議直接從 Pgadmin 或 Psql 終端執行它。因為如果會話終止或由於超時,它可能會使索引不一致。
希望這可以幫助。Aj