`

PostgreSQL主键膨胀使用CONCURRENTLY维护

 
阅读更多
http://my.oschina.net/u/2426299/blog/487913
1. 维护前
postgres=# \d+ test
                                                        Table
"public.test"
  Column |            Type             |                     Modifiers
| Storage | Stats target | Description
--------+-----------------------------+----------------------------------------------------+---------+--------------+-------------
  id     | integer                     | not null default
nextval('test_id_seq'::regclass) | plain   |              |
  val    | timestamp without time zone | default now()
| plain   |              |
Indexes:
     "test_pkey" PRIMARY KEY, btree (id)



2. 创建新的unique index
postgres=# CREATE UNIQUE INDEX CONCURRENTLY ON test USING btree(id);
CREATE INDEX




3. 替换主键
postgres=# BEGIN;
BEGIN
postgres=# ALTER TABLE test DROP CONSTRAINT test_pkey;
ALTER TABLE
postgres=# ALTER TABLE test ADD CONSTRAINT test_id_idx PRIMARY KEY USING
INDEX test_id_idx;
ALTER TABLE
postgres=# COMMIT;
COMMIT



4. 维护后
postgres=# \d+ test
                                                        Table
"public.test"
  Column |            Type             |                     Modifiers
| Storage | Stats target | Description
--------+-----------------------------+----------------------------------------------------+---------+--------------+-------------
  id     | integer                     | not null default
nextval('test_id_seq'::regclass) | plain   |              |
  val    | timestamp without time zone | default now()
| plain   |              |
Indexes:
     "test_id_idx" PRIMARY KEY, btree (id)

这样的好处是,可以在白天负载低的时候维护主键
分享到:
评论

相关推荐

    postgreSQL复合主键

    关于postgreSQL复合主键的一些用法,希望对大家有用。

    PostgreSQL 12.2安装与使用

    PostgreSQL 12.2 安装与使用 PostgreSQL 是一种功能强大且广泛应用的开源关系数据库管理系统,本文档旨在为初学者提供一个详细的 PostgreSQL 12.2 安装与使用指南。 创建用户与环境配置 在安装 PostgreSQL 之前,...

    postgresql安装和使用

    本文将详细介绍在Linux环境下安装和使用PostgreSQL 8.2.14的过程。 首先,安装PostgreSQL在Linux上的步骤如下: 1. **下载RPM包**: 你需要下载四个RPM包,分别是: - `compat-postgresql-libs-4-1PGDG.rhel5.i...

    PostgreSQL数据库WEB远程维护管理软件

    TreeDMS数据库管理系统使用JAVA开发,实现基于WEB方式对 PostgreSQL 数据库进行维护管理操作。 功能包括:数据库的展示,库表的展示,表字段结构的展示, SQL语句的在线编辑批量执行,表结构的在线设计维护, 数据的...

    MyBatis Generator + PostgreSQL 逆向工程单独使用包及使用说明.rar

    PostgerSQL的jar包版本:postgresql-9.3-1102-jdbc4.jar mybatis-generator版本:mybatis-generator-core-1.3.7.jar 关于逆向工程自动生成dao层代码的功能,网上很多介绍的都是mysql版本的,而且介绍的都是在开发...

    PostgreSQL中文手册9.2

    PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (数据库维护 数据库维护 数据库维护 ) 56 一、恢复磁盘空间: 一、恢复磁盘空间: 一、恢复磁盘空间: 一、恢复磁盘空间: . 56 二、更新规划器统计: ...

    使用Druid数据连接池连接PostgreSQL简单例子

    本教程将详细介绍如何在Java项目中使用Druid数据连接池连接PostgreSQL数据库,以实现一个简单的测试环境。 首先,我们需要了解Druid数据连接池的基本概念。Druid提供了一种高效、灵活的数据库连接管理方式,它可以...

    PostgreSQL 12.2 安装手册

    登录数据库是为了对 PostgreSQL 数据库进行管理和维护。使用 psql 命令可以连接到 PostgreSQL 数据库,并执行相关的数据库操作。 数据库备份和恢复 数据库备份和恢复是 PostgreSQL 数据库管理的重要步骤。使用 pg_...

    pg_bloat_check:PostgreSQL膨胀检查脚本

    pg_bloat_check pg_bloat_check是一个脚本,用于为PostgreSQL表和/或索引提供膨胀报告。 它至少需要Python 2.6中和pgstattuple的contrib模块- 注意,在非常大的数据库或具有许多表的数据库上,使用pgstattuple检查...

    Postgresql-XL使用总结

    Postgresql-XL使用总结 Postgresql-XL是基于Postgres-XC的开源数据库集群,具有可横向扩展的特点。本文将对Postgresql-XL的使用总结进行详细的知识点解析。 1. Postgresql-XL概述 Postgresql-XL是一个基于...

    postgresql-42.5.0.jar

    postgresql-42.5.0.jar是Java上的一个驱动程序,用于连接PostgreSQL数据库并与其进行...它是经过定期更新和改进的,以确保其与最新版本的PostgreSQL数据库兼容,同时提供了丰富的API和文档,方便程序员进行开发和维护。

    Postgresql-10安装包

    本文将详细介绍如何使用提供的 PostgreSQL-10 安装包进行安装,以及在安装过程中可能遇到的关键知识点。 **一、PostgreSQL 10 的特性** 1. **并行查询优化**:PostgreSQL 10 引入了并行查询功能,使得大型表的扫描...

    postgresql-12-A4_postgresql手册_

    3. 自动化维护:使用`VACUUM`和`ANALYZE`命令进行数据库维护,以保持良好的查询性能。自动化的`autovacuum`进程可以在后台执行这些任务。 三、后台编程 1. PL/pgSQL:PostgreSQL内置的事务级过程语言,用于编写...

    postgresql10数据库生成文档工具

    总的来说,"postgresql10数据库生成文档工具"是一个方便的数据库管理辅助工具,它能够帮助开发者和DBA高效地管理和维护PostgreSQL 10数据库,同时提供清晰的数据库结构文档,便于团队协作和项目管理。通过合理使用...

    pgsql-bloat-estimation:用于测量 PostgreSQL 索引和表中统计膨胀的查询

    pgsql-膨胀-估计用于测量 PostgreSQL 的 btree 索引和表中统计膨胀的查询。 应考虑三种不同类型的未使用空间: 对齐填充:根据类型,PostgreSQL 会向您的字段添加一些填充以在行中正确对齐它们。 这与一些 CPU 操作...

    Matlab与PostgreSQL数据库的连接

    使用 Matlab 连接 PostgreSQL 数据库需要使用 database 函数。该函数的语法为:connection = database(database_name, database_user, user_password, 'Vendor', 'PostGreSQL');其中,database_name 是数据库的名称...

    postgresql一直使用的稳定版

    postgresql一直使用的稳定版

    PostgreSQL_8.2.3.rar_postgresql_windows 8

    这个文档可能涵盖了安装、配置、使用以及管理PostgreSQL数据库的各种知识。 1. **安装与配置**:文档会详细介绍如何在Windows 8环境下安装PostgreSQL 8.2.3,包括设置环境变量、配置数据目录、启动和停止数据库服务...

    使用Bucardo搭建PostgreSQL数据库双主同步.docx

    使用 Bucardo 搭建 PostgreSQL 数据库双主同步 本文将指导您使用 Bucardo 搭建 PostgreSQL 数据库双主同步,涵盖 Bucardo 的介绍、搭建前准备、安装 Perl 和 PostgreSQL、安装依赖包等方面的知识点。 一、Bucardo ...

Global site tag (gtag.js) - Google Analytics