三个重要配置work_mem, maintenance_work_mem, effective_cachesize----数据架构师的PostgreSQL修炼
来源:互联网 发布:sql loader 语法 编辑:程序博客网 时间:2024/05/16 10:58
1.work_mem
这些内存大小被用来完成内部排序与哈希表操作。
如果未分配足够内存,会导致物理I/O。
work_mem这个值是针对每个session的,所以不能设置的过大。
创建表myt,插入1000000行数值:
修改当前session的work_mem值为64kB:
查询当前临时文件占用情况:
说明order by 是需要创建临时文件的。
用pg_stat_reset()来清空统计信息:
设置当前session的work_mem为16MB:
执行同样的order by操作,并查询临时文件占用情况:
发现,没有临时文件的占用,说明对于此次order by,mem_work足够大了。
2. maintainance_work_mem
该参数分配的存储空间主要用于analyzing,vacuum,create index, reindex等。
首先,清空统计信息:
再向myt中插入2000000行数据,查看myt所占磁盘大小:
查看当前maintenance_work_mem大小:
查看当前临时文件占用情况,给myt创建index,再次查看临时文件占用情况:
调整maintenance_work_mem到1GB:
drop index:
再次给myt创建index,并查看临时文件占用情况:
3. effective_cache_size
这个参数并不会导致具体的内存分配,而仅仅是告诉PostgreSQL对于单个SQL查询,有多少disk cache可以使用。
这片内存区域不是为PostgreSQL保留的,而是优化器来用于完成query excution plan的。
4. PostgreSQL里的关键缓冲区
除了CLOG buffer(Commit Log buffer),别的应该都已经涉及过。
CLOG buffer主要是来存储每个事务的执行状态。
阅读全文
0 0
- 三个重要配置work_mem, maintenance_work_mem, effective_cachesize----数据架构师的PostgreSQL修炼
- checkpoint 进程----数据架构师的PostgreSQL修炼
- 后台写入进程----数据架构师的PostgreSQL修炼
- autovacuum进程----数据架构师的PostgreSQL修炼
- log进程----数据架构师的PostgreSQL修炼
- 统计信息收集进程----数据架构师的PostgreSQL修炼
- PostgreSQL的MVCC与xmin,xmax----数据架构师的PostgreSQL修炼
- PostgreSQL主要进程和共享缓冲区(shared buffer)----数据架构师的PostgreSQL修炼
- 事务的ACID,PostgreSQL的事务隔离级别实验,非常棒的----数据架构师的PostgreSQL修炼
- WAL与WAL写进程----数据架构师的PostgreSQL修炼
- 数据科学的三个重要经验
- SAS处理数据的三个重要步骤
- 系统架构师的修炼
- 系统架构师的修炼
- 系统架构师的修炼
- 系统架构师的修炼
- 系统架构师的修炼
- 系统架构师的修炼
- linux安装tomcat以及启动多个tomcat
- CSDN 初识第一天
- 从零开始搭建个人网站(0) 准备工作
- xamarin学习笔记B07(ios的UITableView)
- c语言动态内存申请 melloc()使用注意
- 三个重要配置work_mem, maintenance_work_mem, effective_cachesize----数据架构师的PostgreSQL修炼
- 100经典算法之(三)---分解质因数
- 第11周 【项目4
- 搭建windows+gcc7.2.0环境
- C++使用ffpython嵌入和扩展python
- SSL P1786 麻将游戏 题目
- UG585 Zynq器件 spi controller的Part
- Android jni opencv
- ssl1643-最小乘车费用【dp练习】