位置: 编程技术 - 正文

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

编辑:rootadmin

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

二、测试用例

1.数据表结构:表示一个员工工作绩效的表(work_test):共个字段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 一个W数据大概需要s,虽然已经提升“不少”,但是还是不尽如人意。以前用SQLite时发现Transaction可以大幅提升性能,于是在Postgre中试试,发现并没有明显变 化。不知何故。

2. copy可以将文件(csv)中的数据复制进数据库中,当然数据表的结构和要数据类型要与文件一一对应。据说可以大幅提升插入性能。  使用Copy后发现插入的性能立马提升至s,相当于1s插入条记录。这中间还包含生成csv文件的时间。

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

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

说明:x轴表示数据库中已有的记录数,单位百万,每个点是W.Y轴表示每次插入所耗时间,单位秒。蓝色线:insert;之所以后面比较稳定是因为电脑没有运行其他程序。所以说,电脑工作状态对Postgre效率有一定的影响。粉红色:copy;黄色线:copy+unlogged 虽然建了索引,并且表中的数据一直累加进来,对于后续插入数据性能并没有任何影响,这个结果就是我想看到的。四、查询测试按name字段搜索:说明:x轴表示数据库中已有的记录数,单位百万,每个点是W.Y轴表示每次查询所耗时间,单位毫秒。蓝色线:insert;粉红色:copy;黄色线:copy+unlogged由于三种插入方式结果都是一样的,所以对比并没有意义,这里主要看查询耗时。平均下来:ms,并且随着Row count的增加,查询效率并没有降低。这主要得益于良好的索引。另外发现:条件越多,查询效率越高,因为扫描的行数在减少,后面的图就不贴出来了。

推荐整理分享Postgre数据库Insert 、Query性能优化详解,希望有所帮助,仅作参考,欢迎阅读内容。

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

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

PostgreSQL管理工具phpPgAdmin入门指南 一、安装phpPgAdmin将下载的压缩包解压对于tar.gz执行如下命令:gunzipphpPgAdmin-*.tar.gztar-xvfphpPgAdmin-*.tar对于tar.bz2执行如下命令:bunzip2phpPgAdmin-*.tar.bz2tar-xvfph

phpPgAdmin 常见错误和问题的解决办法 一、安装错误Q:我已经安装了phpPgAdmin,但是当我企图使用它的时候,我得到一个错误说我安装的PHP没有正确的编译数据库支持。A:这个信息的意思是你的

phpPgAdmin 配置文件参数说明中文版 ?php/***这里是phpPgAdmin的配置中心。用户需要根据自己的实际情况修改这里的设置。**$Id:config.inc.php-dist,v1.//::mr-russExp$*///一个示例服务器。你

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

本文链接地址:https://www.jiuchutong.com/biancheng/319657.html 转载请保留说明!

上一篇:Windows下PostgreSQL安装图解

下一篇:PostgreSQL管理工具phpPgAdmin入门指南

  • SQL注入全过程深入分析(sql注入的原理和步骤)

    直接通过Google浏览器就能去除。

    点击登录,返回的信息如下:

    Conversion failed when converting the nvarchar value 'master' to data type int.

    数据库名称“master”通过异常被显示出来!依次改变上面SQL语句中的序号,

    就能得到服务器上所有数据库的名称。

    接着,输入信息如下:

    得到返回信息如下:

    Conversion failed when converting the nvarchar value 'spt_fallback_db' to data type int.

    我们得到了master数据库中的第一张表名:“spt_fallback_db”,

    同上,依次改变序号,可得到该库全部表名。

    现在我们以“spt_fallback_db”表为例,尝试获取该表中所有的字段名。在输入框中输入以下代码:

    于是,得到错误提示如下:

    "Conversion failed when converting the nvarchar value 'xserver_name' to data type int." class="img-responsive" alt="SQL注入全过程深入分析(sql注入的原理和步骤)">

    SQL注入全过程深入分析(sql注入的原理和步骤)

  • u盘一键启动bios设置的图文教程(u盘一键启动安装系统,电脑只有两个盘)

    u盘一键启动bios设置的图文教程(u盘一键启动安装系统,电脑只有两个盘)

  • 在 CentOS 7 系统上安装 Kernel 4.0的方法(centos7yum)

    在 CentOS 7 系统上安装 Kernel 4.0的方法(centos7yum)

  • Win8系统iTunes一直重复安装失败怎么办?Win8系统iTunes安装失败的解决办法(win8安装itunes)

    Win8系统iTunes一直重复安装失败怎么办?Win8系统iTunes安装失败的解决办法(win8安装itunes)

  • win10黑屏开机时间长提示错误oxc0000225的解决方法(windows10开机黑屏)

    win10黑屏开机时间长提示错误oxc0000225的解决方法(windows10开机黑屏)

  • Win8设置打字时显示鼠标指针的方法(一打字就出现windows设置)

    Win8设置打字时显示鼠标指针的方法(一打字就出现windows设置)

  • Linux多线程下载工具myget 替换单线程wget(linux 多线程 写文件)

    Linux多线程下载工具myget 替换单线程wget(linux 多线程 写文件)

  • lookAtCamera

    lookAtCamera

  • Extjs EditorGridPanel中ComboBox列的显示问题

    Extjs EditorGridPanel中ComboBox列的显示问题

  • dos命令for用法详解(dos的for用法)

    dos命令for用法详解(dos的for用法)

  • css 跨浏览器实现float:center(css兼容浏览器)

    css 跨浏览器实现float:center(css兼容浏览器)

  • Unity内存优化(unity性能和内存优化)

    Unity内存优化(unity性能和内存优化)

  • 以前年度损益调整
  • 一般纳税人金税盘抵税会计分录
  • 我国增值税税率改革带来的影响
  • 特许权使用费收入
  • 缴纳工会经费会计处理
  • 汽车维修费可以计入交通费吗
  • 清包工取费标准
  • 代收污水处理费免税
  • 短期借款可以按币种设置明细核算
  • 小规模纳税人转让土地使用权
  • 期末账项调整的类型
  • 固定资产按月折旧了,还能一次折旧么
  • 结转当月材料采购成本的会计分录怎么做?
  • 接受投资转入固定资产不影响现金流量变动
  • 公司代缴的社保个人账户能不能查到
  • 出口免税什么意思
  • 何为提租补贴
  • 提前退休取得的一次性补贴收入
  • 母公司不经营分公司能报税吗?
  • 捐助建学校
  • 支付宝对公账户还款清零要多久
  • 出租不动产什么时候交税
  • 商品进销差价如何结平
  • 因为质量问题
  • 承兑汇票如何背书转让
  • 会计人员需要承担的责任
  • 空头支票怎么办
  • 当月制造费用转生产成本
  • 购买增值税防伪税控系统专用设备
  • 如何看待税收的本质
  • 公司作为股东有什么好处
  • 前端常问的面试题
  • 动静结合会计等式的不会重复算利润吗
  • 一站式自动化测试平台如何滑动
  • curl命令上传文件到服务器
  • php怎么定义全局变量
  • linuxless命令查看文件
  • 仓库发货打包以及建议年终总结
  • 现金报销医药费
  • 购买员工团体意外险肺炎能报销吗
  • 发票没有填写开户行,可以报销吗
  • 工业企业辅助生产设备
  • 发票生活服务费填什么报销内容
  • 资本公积和盈余公积是什么意思
  • 信息技术服务费的税率是多少
  • 小规模企业主营业务成本分录
  • 税控盘的费用做什么会计科目
  • 托收承付和委托收款区别
  • 免征增值税所得税在申报表中咋填
  • 职工社会保险费是什么意思
  • 进项税额和销项税额有什么区别
  • 应收账款周转率高说明
  • 收购溢价会计处理
  • 写字楼物业费按照什么面积
  • 跨年红冲收入记在本年度
  • 预收账款处理
  • 零申报是不是什么都不用填
  • 城市配套费的账务处理
  • 毛利润包括什么
  • 销售商品托收承付怎么确认收入
  • 印花税怎么新增税源
  • sqlserver 优化配置
  • bios开机密码怎么关闭
  • bios设置光盘启动图解
  • windows server 2008 r2安装教程
  • micc是什么意思中文
  • mac如何更改
  • win7开机出现两个系统选项
  • win10虚拟机不能使用
  • win8.1如何快速启动
  • shell脚本数字运算
  • javascript有哪些类型
  • 安卓 图形api
  • 利用职务之便谋取私利是什么罪
  • 四川税务局发票下载
  • 怎么在年报查询个人信息
  • 企业所得税年度申报时间
  • 苹果官网手机号码无效
  • 福建地税网上办事大厅
  • 收购晾晒烟叶,支付价款20万元,支付价外补贴2万元
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设