暂无图片
pg中DIO或者bufferIO 的通俗理解?
我来答
分享
暂无图片 匿名用户
pg中DIO或者bufferIO 的通俗理解?

pg中DIO或者bufferIO 的通俗理解?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
lianR

DIO(Direct  IO)和Buffer  IO是计算机系统中两种不同的数据读写方式。

1.  DIO(Direct  IO):直接输入输出,也就是绕过操作系统的缓冲区,直接在应用程序和磁盘之间进行数据传输。这种方式的优点是可以减少CPU的使用率和系统的内存使用,但是缺点是会增加磁盘I/O的次数,因为每次读写都需要直接操作磁盘。

2.  Buffer  IO:缓冲输入输出,也就是通过操作系统的缓冲区进行数据传输。当应用程序需要读写数据时,首先会把数据读写到操作系统的缓冲区,然后再由操作系统把数据从缓冲区读写到磁盘。这种方式的优点是可以减少磁盘I/O的次数,因为操作系统可以把多次的小数据读写合并成一次大数据读写,但是缺点是会增加CPU的使用率和系统的内存使用。

在PostgreSQL(pg)数据库中,也存在这两种数据读写方式。通常情况下,pg会优先选择使用DIO,因为这样可以减少系统的内存使用,提高数据库的性能。但是在某些情况下,比如当数据量非常大,或者磁盘I/O性能非常差的时候,pg可能会选择使用Buffer  IO,以减少磁盘I/O的次数,提高数据读写的效率。

暂无图片 评论
暂无图片 有用 3
打赏 0
清风生

DIO、BufferIO概念如楼上所说,另外截至目前版本,pg只有wal可支持DIO(wal_sync_method参数设置),其他都是Buffer IO。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
使用 Pgpool-II 在线恢复设置 PostgreSQL 备用服务器时,如何看程序的日志或错误输出?
回答 1
查下pgpool的配置文件,如:/etc/pgpool.conflogdir'/var/run/pgpool'
pg_rman是实例级别的备份,还是库的?能否只备份指定的某个库?
回答 1
是实例级别的备份,不能指定单个库
pg如何查看wal文件的物理路径?
回答 2
参数logdirectory决定了pgwal日志存放的目录名字,默认为log;不过这个是相对目录,相对于$PGDATA,$PGDATA目录可以查看参数datadirectory
postgresql能不能在流复制从库上建逻辑复制同步几张表到另外一个库?
回答 2
已采纳
其实没理解的你的意思。我们一般都是一主两从。其中第二个从有延迟复制的功能。这样等于在2个从库。总体来说效果和你的说差不多。第二个从和第一个从数据差不多。之所以要延迟是为了防止误操作。如果不为了这个。那
postgresql 中等待事件如何查看?
回答 1
已采纳
PG中可以通过系统表pgstatactivity查看等待事件,这张表的waiteventtype字段表示等待事件的类型。
postgresql 有没有ide能把列名的描述显示出来?
回答 1
已采纳
PostgreSQL查询表字段的详细信息(字段名、字段类型、字段描述等):实际使用中需要修改TABLESCHEMA和TABLENAMESELECTAA.,BB.DESCFROM(SELECTA.ORD
postgresql 表分区会影响查询性能吗?
回答 2
一般来说按照分区查询不会影响。但是不按照分区查询会影响。比如按照时间分区,但是按照状态查询。
PostgreSQL Varchar类型最大存储多少字节内容?
回答 1
varchar(n)n代表字符个数(010485760),而非字节大小
存储过程的执行计划如何查看
回答 2
存储过程实际就是sql语句的集合,所以跟踪每个sql执行的sql执行计划即可PG数据库中的执行计划
postgreSQL 的select any dictionary怎么赋权?
回答 2
postgres的赋权是层层赋权:(1)先把schema的权限授予用户(2)把schema.table的权限授予用户注意:如果直接跳过第一步,第二步grantselectonschema.tablet