• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >PostgreSQL > Postgre数据库Insert 、Query性能优化详解

Postgre数据库Insert 、Query性能优化详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了postgre数据库,postgre sql数据库,postgre 创建数据库,postgre,postgre sql等相关知识,希望本文的分享对您有所帮助

一、前言
以前的系统由于表设计比较复杂(多张表,表与表直接有主从关系),这个是业务逻辑决定的。 插入效率简直实在无法忍受,必须优化。在了解了Postgre的Copy,unlogged table 特性
之后,决定一探究竟。

二、测试用例

1.数据表结构:表示一个员工工作绩效的表(work_test):共15个字段
id,no,name,sex,tel,address,provice,city,post,mobile,department,work,start_time,end_time,score
索引(b-tree的集群索引或者叫聚集索引):id,no,name,sex,tel,address,provice,city,post,mobile,department,work

2.测试环境:win7,四核,2GB内存;postgre版本9.3;Npgsql连接Postgre数据库。

三、insert/ transaction/ copy/unlogged table

1.insert 一个10W数据大概需要120s,虽然已经提升“不少”,但是还是不尽如人意。以前用SQLite时发现Transaction可以大幅提升性能,于是在Postgre中试试,发现并没有明显变
化。不知何故。

2. copy可以将文件(csv)中的数据复制进数据库中,当然数据表的结构和要数据类型要与文件一一对应。据说可以大幅提升插入性能。

3.unlogged table
unlogged table,网上的文章说可以10倍于insert。使用方法也很简单:Create unlogged table ...
但是unlogged table 在遇到Postgre服务器异常重启后会丢失全部数据,所以如果你的数据不允许丢失,请不要使用。
使用后发现,大概20s,1s插入5000条记录。

下面是三种插入方式的走势图:

说明:x轴表示数据库中已有的记录数,单位百万,每个点是10W.Y轴表示每次插入所耗时间,单位秒。
蓝色线:insert;之所以后面比较稳定是因为电脑没有运行其他程序。所以说,电脑工作状态对Postgre效率有一定的影响。
粉红色:copy;
黄色线:copy+unlogged
 虽然建了索引,并且表中的数据一直累加进来,对于后续插入数据性能并没有任何影响,这个结果就是我想看到的。

四、查询测试
按name字段搜索:
</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Postgre数据库Insert 、Query性能优化详解

相关文章

  • 2017-05-11PostgreSQL教程(五):函数和操作符详解(1)
  • 2017-05-1115个postgresql数据库实用命令分享
  • 2017-08-07PostgreSQL存储过程循环调用
  • 2017-09-08postgresql 数据库时间间隔数据查询
  • 2017-05-11PostgreSQL教程(十四):数据库维护
  • 2017-05-11PostgreSQL教程(十八):客户端命令(2)
  • 2017-05-11PostgreSQL教程(九):事物隔离介绍
  • 2017-05-11PostgreSQL教程(六):函数和操作符详解(2)
  • 2017-05-11windows PostgreSQL 9.1 安装详细步骤
  • 2017-09-08PostgreSQL的存储过程简单入门

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • PostgreSQL教程(二十):PL/pgSQL过程语言
    • PostgreSQL教程(十二):角色和权限管理介绍
    • phpPgAdmin 配置文件参数说明中文版
    • PostgreSQL 数据库性能提升的几个方面
    • PostgreSQL 创建表分区
    • PostgreSQL 安装和简单使用第1/2页
    • PostgreSQL教程(十七):客户端命令(1)
    • PostgreSQL之分区表(partitioning)
    • Linux CentOS 7源码编译安装PostgreSQL9.5
    • 用一整天的时间安装postgreSQL NTFS权限

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有