PostgreSQL修改列与重写表
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 老版本的PostgreSQL在新增列时,会rewrite全表,相当于vacuum full table_name。这对生产是非常不利的,严重导致读写效率的低下。高版本已经有所改善,下面检验之。 检查有没有rewrite表,可以查看它的系统列ctid的变化来验证。 DB:PostgreSQL 9.1.2 postgres=# \d tab_kenyon Table "public.tab_kenyon" Column | Type | Modifiers --------+-----------------------+----------- id | integer | name | character varying(35) | remark | text | 验证过程如下: postgres=# vacuum full tab_kenyon; VACUUM postgres=# select ctid,* from tab_kenyon ; ctid | id | name | remark -------+----+--------------+-------- (0,1) | 1 | kenyon | (0,2) | 2 | china | (0,3) | 5 | oopoo | (0,4) | 45