• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PostgreSQL 数据库性能提升的几个方面

    1.使用EXPLAIN
    EXPLAIN命令可以查看执行计划,在前面的blog中已经介绍过。这个方法是我们最主要的调试工具。

    2.及时更新执行计划中使用的统计信息
    由于统计 信息不是每次操作数据 库 都 进 行更新的,一般是在 VACUUM 、 ANALYZE 、 CREATE INDEX等DDL执行的时候会更新统计信息,
    因此执 行 计 划所用的 统计 信息很有可能比 较 旧。 这样执 行 计 划的分析 结 果可能 误 差会 变 大。

    以下是表tenk1的相关的一部分统计信息。
    SELECT relname, relkind, reltuples, relpages
    FROM pg_class
    WHERE relname LIKE 'tenk1%';

    relname | relkind | reltuples | relpages
    ----------------------+---------+-----------+----------
    tenk1 | r | 10000 | 358
    tenk1_hundred | i | 10000 | 30
    tenk1_thous_tenthous | i | 10000 | 30
    tenk1_unique1 | i | 10000 | 30
    tenk1_unique2 | i | 10000 | 30
    (5 rows)
    其中 relkind是类型,r是自身表,i是索引index;reltuples是项目数;relpages是所占硬盘的块数。

    3.明确用join来关联表
    一般写法:SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id;
    如果明确用join的话,执行时候执行计划相对容易控制一些。
    例子:
    SELECT * FROM a CROSS JOIN b CROSS JOIN c WHERE a.id = b.id AND b.ref = c.id;
    SELECT * FROM a JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id);

    4.关闭自动提交(autocommit=false)

    5.多次插入数据是用copy命令更有效率
    我们有的处理中要对同一张表执行很多次insert操作。这个时候我们用copy命令更有效率。因为insert一次,其相关的index都要做一次,比较花费时间。

    6.临时删除index
    有时候我们在备份和重新导入数据的时候,如果数据量很大的话,要很几个小时才能完成。这个时候可以先把index删除掉。导入在建index。

    7.外键关联的删除
    如果表的有外键的话,每次操作都没去check外键整合性。因此比较慢。数据导入后在建立外键也是一种选择。

    8.增加maintenance_work_mem参数大小
    增加这个参数可以提升CREATE INDEX和ALTER TABLE ADD FOREIGN KEY的执行效率。

    9.增加checkpoint_segments参数的大小
    增加这个参数可以提升大量数据导入时候的速度。

    10.设置archive_mode无效
    这个参数设置为无效的时候,能够提升以下的操作的速度
    ・CREATE TABLE AS SELECT
    ・CREATE INDEX
    ・ALTER TABLE SET TABLESPACE
    ・CLUSTER等。

    11.最后执行VACUUM ANALYZE
    表中数据大量变化的时候建议执行VACUUM ANALYZE。

    您可能感兴趣的文章:
    • 在Windows下自动备份PostgreSQL的教程
    • PostgreSQL实战之启动恢复读取checkpoint记录失败的条件详解
    • Windows下Postgresql数据库的下载与配置方法
    • Windows下PostgreSQL安装图解
    • PostgreSQL 安装和简单使用
    • PostgreSQL新手入门教程
    • Postgresql主从异步流复制方案的深入探究
    • Postgresql备份和增量恢复方案
    上一篇:PostgreSQL中的XML操作函数代码
    下一篇:PostgreSQL 创建表分区
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PostgreSQL 数据库性能提升的几个方面 PostgreSQL,数据库,性能,提升,