设为首页 加入收藏

TOP

postgre sql性能优化教程
2018-03-22 08:49:28 】 浏览:89
Tags:postgre sql 性能 优化 教程

1 SQL查询性能优化

1)检查数据检索的索引是否建立,凡是需要查找的字段尽量建立索引,甚至是联合索引;创建索引,包括表达式和部分索引;

2) 使用COPY语句代替多个Insert语句;

3) 将多个SQL语句组成一个事务以减少提交事务的开销;

4) 从一个索引中提取多条记录时使用CLUSTER;

5) 从一个查询结果中取出部分记录时使用LIMIT;

6) 使用预编译式查询(Prepared Query);

7) 使用ANALYZE以保持精确的优化统计;

8) 定期使用VACUUM或pg_autovacuum进行大量数据更改时先删除索引(然后重建索引)

2 应用程序开发接口使用方法优化

1)检查程序是否使用了连接池,如果没有使用,尽快使用吧;

2) 检查使用连接后,是否交还给了连接池;

3 数据库服务器配置参数优化

服务器参数配置配置文件postgres.conf中的很多设置都会影响性能,主要的影响因素如下:

1) shared_buffers。

postgresql通过shared_buffers和内核/磁盘打交道。因此增加shared_buffers可以让更多的数据缓存在shared_buffers中,通常设置为实际RAM的10%是合理的,比如50000(400M)

2) work_mem。

增加work_mem有助于提高排序的速度。postgresql在执行排序操作时,会根据work_mem的大小决定是否将一个大的结果集拆分为几个小的和work_mem查不多大小的临时文件。显然拆分的结果是降低了排序的速度。通常设置为实际RAM的2%-4%,根据需要排序结果集的大小而定,比如81920(80M)

3) effective_cache_size:

postgresql能够使用的最大缓存,这个数字对于独立的pgsql服务器而言应该足够大,比如4G的内存,可以设置为3.5G(437500)

4) maintence_work_mem:

该内存在正常使用情况下,用到的频率不高;但是在CREATE INDEX, VACUUM等操作时,往往这些指令消耗比较多的资源,因此应该尽快让这些指令快速执行完毕:给maintence_work_mem大的内存,比如512M(524288)

5) max_connections:通常,max_connections的目的是防止max_connections * work_mem超出了实际内存大小。比如,如果将work_mem设置为 实际内存的2%大小,则在极端情况下,如果有50个查询都有排序要求,而且都使用2%的内存,则会导致swap的产生,系统性能就会大大降低。当然,如果有4G的内存,同时出现50个如此大的查询的几率应该是很小的。max_connections和work_mem的具体关系

4 计算机硬件配置性能优化

由于计算机硬件大多数是兼容的,人们总是倾向于相信所有计算机硬件质量也是相同的。事实上不是,ECC RAM(带奇偶校验的内存),SCSI(硬盘)和优质的主板比一些便宜货要更加可靠且具有更好的性能。PostgreSQL几乎可以运行在任何硬件上,但如果可靠性和性能对你的系统很重要,你就需要全面的研究一下你的硬件配置了。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇postgreSQL表分区使用方法介绍 下一篇数据库查找入职员工时间排名倒数..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目