赞
踩
优化简介:
PostgreSQL数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统的反应速度。例如:
1、分析查询语句EXPLAIN
【例15.1】使用EXPLAIN语句来分析一个查询语句,执行如下语句:
EXPLAIN ANALYZE SELECT * FROM fruits;
2、索引对查询速度的影响
【例15.2】下面是查询语句中不使用索引和使用索引的对比。首先,分析未使用索引时的查询情况,EXPLAIN语句执行如下:
EXPLAIN SELECT * FROM fruits WHERE f_name='apple';
然后,在fruits表的f_name字段上加上索引。执行添加索引的语句及结果如下:
CREATE INDEX index_name ON fruits(f_name);
现在,再分析上面的查询语句。执行的EXPLAIN语句及结果如下:
EXPLAIN ANALYZE SELECT * FROM fruits WHERE f_name='apple';
3、优化子查询
子查询可以一次性完成很多逻辑上需要多个步骤才能完成的SQL操作。子查询虽然可以使查询语句很灵活,但执行效率不高。执行子查询时,PostgreSQL需要为内层查询语句的查询结果建立一个临时表。然后外层查询语句从临时表中查询记 录。查询完毕后,再撤销这些临时表。因此,子查询的速度会受到一定的影响。如果查询的数据量比较大,这种影响就会随之增大。
在PostgreSQL中可以使用连接(JOIN)查询来替代子查询。连接查询不需要建立临时表,其速度比子查询要快,如果查询中使用到索引的话,性能会更好。连接之所以更有效率,是因为PostgreSQL不需要在内存中创建临时表来完成查询工作。
1、将字段很多的表分解成多个表
2、增加中间表
3、增加冗余字段
4、优化插入记录的速度
5、分析表的统计信息
PostgreSQL中提供了ANALYZE语句收集表内容的统计信息,然后把结果保存在系统表pg_statistic 里。
【例15.3】使用ANALYZ来分析fruits表,执行的语句:
ANALYZE VERBOSE fruits;
1、优化服务器硬件
2、优化PostgreSQL的参数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。