`
lovejuan1314
  • 浏览: 342697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PostgreSQL 超大表数据操作

阅读更多

公司数据库中某表数据量达到了4亿多条,在增加索引以及相关的初步优化后效果不理想。因此,决定采用PostgresSQL的表分区,按照日期将该表的数据分散到各个分区上。

在分区表以及各个子表全部建立完毕后,发现服务器硬盘不足。那个大表大概占据了83G左右的空间,而服务器只有43G可用。如果,直接采用insert into new_table select * from old_table的话,势必会造成服务器硬盘空间不够。而如果向公司申请新增硬盘的话,整个流程相当复杂,再说了,如果把数据完全导入到新的分区表中的话,旧表就没用了。

第一次尝试,自己写了数据库程序按照10k为单位进行导入,放入事务中,插入成功10k,然后就把旧表的10k删除。在用screen执行程序后,周末休息。今天上班检查发现才导入成功了不到200万的数据,然后简单计算以后,大吃一惊,要完全导入完成竟然需要约200多天。OMG!完成一次动作竟然需要10min。放弃!

第二次,自己写好数据库约束规则,然后利用pg_restore将大量数据灌进去。结果发现数据竟然存在父表之中,而子表中一条数据也没有。但是手动插入数据,数据就会根据约束进入相关子表。仔细看文档后发现

“COPY FROM 会激活所有触发器和检查约束。不过,不会激活规则。”

唉! 然后,清理数据库环境后,正式开始全面灌数...
分享到:
评论

相关推荐

    PostgreSQL分区表(partitioning)应用实例详解

    项目中有需求要垂直分表,即按照时间区间将数据拆分到n个表中,PostgreSQL提供了分区表的功能。分区表实际上是把逻辑上的一个大表分割成物理上的几小块,提供了很多好处,比如: 1、查询性能大幅提升 2、删除历史...

    JDBC 连接到 PostgreSQL 数据库获取数据简单例子

    在提供的`JDBCTest`文件中,可能包含了上述示例的完整代码,你可以根据实际情况调整参数以连接到你的PostgreSQL数据库,并从指定的表中获取数据。通过学习和理解这个例子,你可以轻松地将JDBC技术应用到自己的Java...

    QGIS+postgresql操作

    在QGIS中,可以通过执行SQL语句窗口来运行PostgreSQL的SQL命令,实现对空间数据库的复杂查询和数据操作。例如,上述提供的SQL语句通过空间关系函数st_contains和where条件,实现了对特定空间范围内的数据的检索。在...

    PostgreSQL分区表实践与思考.pptx

    PostgreSQL作为开源数据库领域的佼佼者,分区表技术的引入为处理大型数据集提供了一种有效的解决方案。本文将从PostgreSQL分区表的概念出发,探讨其在实践中的应用,并分析其带来的性能优化。 首先,我们需要了解...

    C# 操作PostgreSQL 数据库

    以上代码展示了C#操作PostgreSQL数据库的基本步骤:连接、执行SQL语句(包括创建表、插入数据和查询数据)以及处理结果。在实际应用中,你可能还需要考虑错误处理、事务管理和性能优化等更复杂的场景。 在开发过程...

    postgreSQL数据迁移到达梦数据库操作

    PostgreSQL 数据迁移到达梦数据库操作 PostgreSQL 数据迁移到达梦数据库操作是指将 PostgreSQL 数据库中的数据迁移到达梦数据库中的过程。该过程需要使用 Navicat for PostgreSql 工具生成 SQL 脚本,然后使用达梦...

    PostgreSQL_8.4安装及空间数据导入_安装操作手册

    完成所有设置后,执行数据导入操作,将Shapefile数据导入到PostgreSQL数据库中的指定表。导入完成后,可以查看导入的空间数据表,确保数据已经正确存入数据库。 除了上述的安装和导入步骤之外,操作手册还可能提供...

    oracl创建表空间、用户、授权及数据导入和PostgreSQL导入数据

    本篇文章将深入探讨如何在Oracle中创建表空间、用户以及授权,并讲解如何进行数据导入,同时也会简要介绍在PostgreSQL中导入数据的过程。 首先,我们来看Oracle数据库中的操作: 1. **创建表空间**:在Oracle中,...

    postgresql数据快速倒入redis

    "postgresql数据快速倒入redis"这个主题涉及到两个流行的开源数据库系统——PostgreSQL和Redis,以及它们之间的数据迁移。PostgreSQL是一个功能强大的对象关系型数据库管理系统,而Redis则是一个高性能的键值存储...

    postgresql 中文学习手册

    PostgreSQL学习手册(数据表) PostgreSQL学习手册(模式Schema) PostgreSQL学习手册(表的继承和分区) PostgreSQL学习手册(常用数据类型) PostgreSQL学习手册(函数和操作符<一>) PostgreSQL学习手册(函数和操作符<二>) ...

    使用PowerDesigner生成PostgreSQL数据库的物理数据模型

    在进行PowerDesigner生成PostgreSQL数据库物理数据模型的操作之前,首先需要确保实验环境满足以下条件: 1. **操作系统**: Windows Server 2008 2. **PowerDesigner版本**: PowerDesigner 15 3. **PostgreSQL版本**...

    PostgreSQL中文手册9.2

    PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (数据表 数据表 ) 4 一、表的定义: 一、表的定义: 一、表的定义: . 4 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (模式 Schema) ...

    postgresql的数据表导出方法

    在日常的数据库管理和数据分析工作中,将 PostgreSQL 中的数据表导出为 CSV 文件是一种非常实用的操作。这种方式不仅能够帮助我们更好地理解和分析数据,还能方便地将数据传递给其他系统或工具进行进一步处理。本文...

    许中清-PostgreSQL表分区实践

    比如,对于日志记录这种通常只向插入最新数据,而很少需要查询旧数据的场景,可以利用分区表只对新数据进行操作,而无需对整个表进行全表扫描,这极大地提升了性能。 除了手动分区,PostgreSQL还支持分区继承,例如...

    Go-amazonriver是一个将postgresql的实时数据同步到es或kafka的服务

    逻辑复制允许用户获取数据库表中的详细变化,而不是简单的数据块复制。Go-amazonriver就是利用了这一特性,通过创建逻辑复制槽来监听数据库的变更事件。 在PostgreSQL中,创建逻辑复制槽是开启数据同步的第一步。...

    QL SERVER 2000到POSTGRESQL数据迁移

    【SQL SERVER 2000到POSTGRESQL数据迁移】是一项技术性的工作,涉及两个不同数据库系统的数据转换。在这个过程中,我们需要确保数据的完整性和一致性,同时还要处理两种数据库之间结构差异的问题。以下是对迁移过程...

    PostgreSQL介绍.pptx

    PostgreSQL 数据表操作是指使用 SQL 语言或 pgAdmin 工具来操作数据表对象,包括创建数据表、修改数据表、删除数据表等。 PostgreSQL 数据类型介绍 PostgreSQL 数据类型包括数值类型、日期与时间类型、字符串类型...

    postgresql+postgis安装和空间数据的导入

    PostgreSQL与PostGIS的安装和空间数据导入 PostgreSQL是一个功能强大且开源的关系数据库管理系统,而PostGIS则是一个基于PostgreSQL的空间数据库扩展,提供了对空间数据的支持。在本文中,我们将介绍如何安装...

    postgresql数据类型转换.pdf

    PostgreSQL是一款强大的开源关系型数据库管理系统(RDBMS),广泛应用于各个行业和领域,...对于数据库开发者和管理员而言,合理运用这些转换函数和操作符,将能够有效地解决在数据操作过程中遇到的各种类型转换问题。

Global site tag (gtag.js) - Google Analytics