PostgreSQL创建索引并避免写数据锁定(并发的索引)
关于并发建立索引:http://58.58.27.50:8079/doc/html/9.3.1_zh/sql-createindex.html 写这篇blog源自一个帅哥在建索引发生了表锁的问题。先介绍一下Postgresql的建索引语法: CREATE[UNIQUE]INDEX[CONCURRENTLY][name]ONtable[USINGmethod] ({column|(expression)}[COLLATEcollation][opclass][ASC|DESC][NULLS{FIRST|LAST}][,...]) [WITH(storage_parameter=value[,...])] [TABLESPACEtablespace] [WHEREpredicate] 这里不解释语法的诸多参数使用(排序,使用方法,填充因子等),主要说一下concurrently的使用场景。 postgres=#dt_kenyon Table"public.t_kenyon" Column|Type|Modifiers --------+---------+----------- col|integer| Indexes: "idx"btree(col)INVALID --重建遇到上述失效的索引重建时两个办法,一个是drop index index_name,然后再执行create index concurrently。还有一个是执行reindex index_name命令,但是后者不支持concurrently参数。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |