PostgreSQL的数据存储(十五)---数据存储
2011-09-16 08:46
127 查看
4.7 大对象存储
从用户可操作的角度看,PG提供了一套函数接口,用以操作大对象。如:lo_create、lo_open、lo_write、lo_close等。大对象的存储,可以从lo_write函数中得知如下信息:
1. 大对象,会被拆分为一个个“LOBLKSIZE”(2k)大小的子项,当作元组项,置于数据页中(调用heap_form_tuple形成一个个tuple,然后用simple_heap_insert插入到页面中)
2. 大对象被拆分后,连续在页面上存储,可以跨页存储,但每次存储的单位是tuple(LOBLKSIZE大小)
4.8 物理IO调用方式
如果没有缓存(buf)这一层,读写元组或读写列,就需要直接调用IO函数了。就像作者在《PostgreSQL之精妙的数据库导入导出工具架构 (四)》等系列中写的一样,PG的导入导出工具,直接操作外存和物理IO打交道,所以直接调用read、write等C函数操作外存。而存储层,涉及保存数据的地方,都是对buf操作,是一种逻辑IO的方式,所以,并不涉及直接调用read、write等C函数操作外存。
因为有了IO,逻辑IO和物理IO完全分离,使得操作IO的效率大为提高。读写tuple,完全建立在内存上,所以,没有了调用read、write等C函数操作的处理工作,减少物理IO操作提升了效率。
相关文章推荐
- PostgreSQL的数据存储(四)---虚拟文件管理
- 数据仓库--postgresql for 循环记录完成存储过程总调度
- PostgreSQL的数据存储(六)---数据存储
- PostgreSQL的数据存储(五)---数据存储
- PostgreSQL的数据存储(七)---数据存储
- Postgresql存储过程--更新或者插入数据
- Postgresql 查看表数据存储
- PostgreSQL大数据表的分区存储
- PostgreSQL的数据存储(八)---数据存储
- postgresql 存储过程动态插入数据 2
- 我的Android之旅(十五)---数据存储---SD卡数据的读取
- 开源程序postGIS--为postgresql提供存储空间地理数据的支持
- PostgreSQL的数据存储(九)---数据存储
- PostgreSQL的数据存储(十三)---数据存储
- PostgreSQL的数据存储(十七)---数据存储的知识扩展
- 知识管理系统Data Solution研发日记之十五 数据存储技术 LLBL Gen ORM + Db4o
- PostgreSQL的数据存储(二)---数据缓存区和数据存储层的接口
- PostgreSQL的数据存储(十)---数据存储
- PostgreSQL的数据存储(十八)---数据存储的优化
- PostgreSQL的数据存储(三)---数据缓存区和数据存储层的接口