ChinaUnix.net 首页 | 博客 | Linux | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索
Linux首页 | Linux论坛 | 论坛精华 | 开源新闻 | 技术文章 | 专题专栏 | 新手指南 | 迁移方案 | 产品方案 | 开源项目 | 开源图书 | 软件下载 | 人才招聘 | Linux博客
  搜索

  产品与方案
·中科红旗全面打造现代化邮政体系
·红旗助力“网上审批服务” 推动电子政务
·红旗正版化开创呼和浩特网吧建设新起点
·红旗Linux助信息产业部邮件服务器“快跑”
·中标普华Linux 为电子政务信息化保驾护航
·中标普华Linux助力基金产业
·中标普华Office率先支持UOF标准
·中标普华邮件系统助力西藏政府信息化建设
·红旗Linux助力国库集中支付系统改革
·红旗助中信卫星 掀起GIS通信应用风暴
·红旗软件助力烟草总局 全面建设“数字烟草”
·红旗助力“信访阳光工程”打造畅通信访渠道
·红帽联合FIS发布下一代实时核心银行平台
·红旗助力金盾 打造全无忧出入境信息系统
·红旗Linux全力打造中国邮政总局名址信息库
·爱尔兰证交所从Unix迁移到红帽企业Linux
·一流的意大利银行选择使用红帽企业Linux
·PLUS Finanzservice选择使用红帽企业Linux
·红帽助力TransACT Communications 公司
·法国零售业巨头Lapeyre采用Redhat Linux
·旅游预订网站选择使用红帽企业Linux
·马哈拉施特拉邦政府的红帽解决之道
·美国联邦政府案例
·红帽为慕尼黑展览会提供现代化集群系统
·Yuba郡用开源软件和红帽产品提高了效率
·红帽企业Linux助印度理工建立高性能计算中心
·采用红帽Linux 将系统维护时间缩短了65%
·从UNIX迁移到Linux使Peñoles公司获益非浅
·Hikal公司用红帽企业Linux开展任务关键的ERP项目
·KDE3.5.4新版本发布
·芝加哥商业交易所从Unix向Linux迁移
·南方基金管理有限公司成功案例 Red Hat Linux
·广东北电通讯设备有限公司成功案例
·挪威国家石油公司从UNIX迁移到红帽Linux,成本减半
·中央电视台CCTV动画部案例 Red Hat Linux

  图书

鸟哥的Linux私房菜基础学..


Linux程序设计.第3版


Linux设备驱动开发详解


  下载
·Endian Firewall
·linux kernel(Linux 内核)
·CentOS
·Fedora Core 6
·Scientific Linux
·Slackware 11.0
·Gentoo Linux
·ubuntu-6.10-i386服务器版本
·ubuntu-6.10-amd64服务器版
·ubuntu-6.10-i386桌面版
·ubuntu-6.10-amd64桌面版
·Engarde Linux
您的位置: Linux时代 > 技术文档 > 数据库 >

提高向有索引的表插入数据时的性能

日期:2008-01-03 作者:ITPUB 来自:linux.chinaunix.net


  最近有一个项目,想用PostgreSQL,先做了做实验。

  项目里有一个非常巨大的表,会有上亿的纪录,并且还要每3分钟插入10万条左右的数据。为了查询效率,表上还建有几个索引。

  为了排除很多因素的影响,实验中扩大shared_buffers到300M,增大checkpoint_segments到9。每次实验时都vacuum full analyze,并且所有的插入都在一个事务中进行。

  在做插入实验的时候,发现了这样的问题:

  当表中已经有大量纪录的时候,插入速度就会非常慢,以至于完全不能接受。

  如果删除掉索引,那么插入速度就变得非常快了。加上随后的创建索引的时间,

  比前一种方式快几十倍。

  我们知道维护一个索引是需要时间的,但维护索引的花费不应该比重建索引花费大这么多啊?

  经过观察,我发现,最主要的原因是这样的,使用top监视系统资源,当表上有索引的时候,插入过程中,cpu有大约一半的时间是在wait上 (系统是双cpu),另外一半是idle。而如果表上没有索引,那么几乎一半的时间是在user上,另外一半是idle

  不干活,光等待,当然慢了。

  按理说,这两种情况的IO应该差不多,为什么一个会发生大量的wait,而另外一种却很顺利?

  猜测一下,可能会是这种情况,当一个表上有索引的时候,表和索引是由不同的文件存放的,并且这几个文件都比较大。当再大量插入数据的时候,PostgreSQL需要频繁的向这几个文件写数据,结构导致磁头频繁移动,

  于是IO效率急剧下降。

  考虑到这种情况,如果使用表空间,将这几个索引和表分别存放在不同的物理磁盘,效果会好一些。

本文被浏览



 相关新闻

用RAMDISK来提高PostgreSQL访问速度2008-01-03 15:36:38
PostgreSQL的昨天今天和明天2008-01-03 11:43:27
Oracle和MySQL、PostgreSQL特性对比2008-01-03 11:32:12
观点:不选择PostgreSQL的五个反驳理由2008-01-03 11:09:03


 相关评论
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 免费注册

Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证041476号