![](https://img-blog.csdnimg.cn/direct/e004c4a92b9a44d187159d929ebf128b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PostgreSQL之性能优化
文章平均质量分 70
涉及PostgreSQL数据库性能优化的硬件优化、SQL优化、连接池等的方方面面。
瀚高PG实验室
瀚高PG实验室(Highgo PG Lab)依托于瀚高DBA运维团队及瀚高数据库PG内核研发团队,旨在深入研究PostgreSQL技术、使用技巧、内核探秘、PG教学等,并进行分享。欢迎大家关注、交流。
展开
-
copy优化
对于大数据量的copy导入, 性能优化的方法可以考虑以下几个方面.1. auto analyze 调整(尽量减少或者导入阶段关闭后续再打开)2. table blocksize(如果业务形态是以大批量导入数据为主, 可以调整到最大)3. unlogged table, (使用unlogged table可以减少wal flush带来的负担, 注意删除fork init文件, 避免db cras原创 2018-01-22 11:19:33 · 623 阅读 · 0 评论 -
Postgresql之VACUUM和VACUUM FULL对比
VACUUM命令存在两种形式,VACUUM和VACUUM FULL,它们之间的区别见如下表格:无VACUUMVACUUMVACUUM FULL删除大量数据之后只是将删除数据的状态置为已删除,该空间不能记录被重新使用。如果删除的记录位于表的末端,其所占用的空间将会被物理释放并归还操作系统。如果不是末端数据,该命令会将指定表或索引中被删除数据所占用空间重新置为可用状态,那么在今后有新数据插入时,将优...原创 2018-03-08 22:10:27 · 17086 阅读 · 0 评论 -
PostgreSQL提升批量数据导入性能的n种方法
作者:瀚高PG实验室 (Highgo PG Lab)- 徐云鹤关键字:批量数据导入,数据加载,大量插入,加快,提升速度多元化选择时代,人生里很多事物都是如此,凡事都没有一成不变的方式和方法。不管白猫黑猫,能抓老鼠的就是好猫,适合自己的就是最好的。提升批量数据导入的方法亦是如此,没有何种方法是最优的,应用任何方法前根据自己的实际情况权衡利弊,做出选择。批量导入数据之前,无论采取何种方式,务必做好相应的备份。导入完成后亦需对相应对象进行ANALYZE操作,这样查询优化器才会按照最新的统计信息生成正确的原创 2021-03-09 17:20:17 · 5960 阅读 · 5 评论 -
调整Linux内核参数来优化PostgreSQL
文档用途详细信息文档用途为了使PostgreSQL数据库获得最佳性能,需要正确定义操作系统参数。如果操作系统内核参数配置不当,可能会导致数据库服务器性能下降。因此,必须根据数据库服务器及其工作负载配置这些参数。本文将介绍一些可能影响数据库服务器性能的重要内核参数以及如何调整这些参数来提升性能。注:本文所有命令及参数设置均针对Linux操作系统。详细信息1.SHMMAX和SH...原创 2018-11-14 08:59:27 · 1606 阅读 · 0 评论 -
调整PostgreSQL数据库参数来优化性能
默认情况下,PostgreSQL配置不针对任何特定工作负载进行优化。设置默认值是为了确保在资源消耗最少的情况下,PostgreSQL在任何时候都能运行,因此不会导致任何致命性威胁。数据库管理员或开发人员应该根据系统的工作负载来优化PostgreSQL。本文将介绍一些可以提高数据库性能的参数的设置。1.shared_buffersPostgreSQL既使用自身的缓冲区,也使用内核缓冲IO。这意味着...原创 2018-09-06 13:52:28 · 17136 阅读 · 0 评论 -
从执行计划查看索引的影响
创建一个表test,并插入一定的数据highgo=# select * from test; id | name | profession ------+--------+-------------- 1 | TOM | accounting 1 | JERRY | accounting 2 | JERRY | accounting原创 2018-01-19 12:28:53 · 1079 阅读 · 1 评论 -
Postgresql 之 优化数据的批量插入
关闭自动提交: 在批量插入数据时,如果每条数据都被自动提交,当中途出现系统故障时,不仅不能保障本次批量插入的数据一致性,而且由于有多次提交操作的发生,整个插入效率也会受到很大的打击。 解决方法是,关闭系统的自动提交,并且在插入开始之前,显示的执行begin transaction命令,在全部插入操作完成之后再执行commit命令提交所有的插入操作。使用COPY: 使用COPY在一条命令里装原创 2018-01-16 18:28:02 · 8200 阅读 · 0 评论 -
浅谈work_mem
先来看一下官方给出的解释work_mem (integer)Specifies the amount of memory to be usedby internal sort operations and hash tables before writing to temporary diskfiles. The value defaults to four megabytes (4M原创 2017-12-01 12:54:32 · 5091 阅读 · 0 评论 -
PostgreSQL数据库中如何保证LIKE语句的效率
在任何数据库中使用LIKE语句往往都是令人头疼的一件事,因为不少用户发现LIKE语句效率极低,查看执行计划后发现原来没有走索引,那么在Postgresql数据中LIKE语句的执行效率又是怎样的呢?我们又该如何提高LIKE语句的执行效率呢?实验环境数据库环境: PostgreSQL 12.3 X86_64创建虚拟环境:highgo=# create database testdb01 owner highgo;CREATE DATABASEhighgo=# \c tes...原创 2021-02-26 12:24:03 · 2192 阅读 · 2 评论