2、PostgreSQL数据库介绍
PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。
PostgreSQL 的 主要优点如下:
1)维护者是PostgreSQL Global Development Group,首次发布于1989年6月。
2)操作系统支持WINDOWS、Linux、UNIX、MAC OS X、BSD。
3)从基本功能上来看,支持ACID、关联完整性、数据库事务、Unicode多国语言。
4)表和视图方面,PostgreSQL支持临时表,而物化视图,可以使用PL/pgSQL、PL/Perl、PL/Python或其他过程语言的存储过程和触发器模拟。
5)索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用来加速全文检索),从8.3版本开始支持位图索引。
6)其他对象上,支持数据域,支持存储过程、触发器、函数、外部调用、游标7)数据表分区方面,支持4种分区,即范围、哈希、混合、列表。
8)从事务的支持度上看,对事务的支持与MySQL相比,经历了更为彻底的测试。
9)My ISAM表处理方式方面,MySQL对于无事务的MyISAM表,采用表锁定,1个长时间运行的查询很可能会阻碍对表的更新,而PostgreSQL不存在这样的问题。
10)从存储过程上看,PostgreSQL支持存储过程。因为存储过程的存在也避免了在网络上大量原始的SQL语句的传输,这样的优势是显而易见的。
11)用户定义函数的扩展方面,PostgreSQL可以更方便地使用UDF(用户定义函数)进行扩展。
通俗而言主要特点如下:
- 免费
- 速度快
- 平台可移植性
- 丰富的接口
- 面向对象的特征
- 安全性
- 配合的开源软件很多
PostgreSQL 的 应用劣势如下:
1)最新版本和历史版本不分离存储,导致清理老旧版本时需要做更多的扫描,代价比较大但一般的数据库都有高峰期,如果合理安排VACUUM,这也不是很大的问题,而且在PostgreSQL9.0中VACUUM进一步被加强了。
2)在PostgreSQL中,由于索引完全没有版本信息,不能实现Coverage index scan,即查询只扫描索引,不能直接从索引中返回所需的属性,还需要访问表,而Oracle与Innodb则可以。
存储系统:
存储系统是PostgreSQL的最底层模块,它向下通过操作系统接口访问物理数据,向上为上层模块提供存储操作的接口和函数。PostgreSQL对物理数据的访问和操作都是通过其存储系统模块来进行的。
PostgreSQL存储系统是由以下几个子模块所构成的:
1)页面管理子模块:对PostgreSQL缓冲区页面的组织结构进行定义以及提供页面操作的方法。
2)缓冲区管理子模块:管理PostgreSQL的缓冲区,包括本地缓冲区和共享缓冲区。
3)存储设备管理子模块:数据库记录是存储在存储介质上的,存储设备管理子模块将屏蔽不同物理存储设备(块设备,流设备)接口函数的差异,向上层缓冲区管理子模块提供统一的访问接口函数。
4)文件管理子模块:一般的操作系统对一个进程允许打开的文件数是有限制的,而PostgreSQL服务器有些时候需要打开的文件数是很多的,因此PostgreSQL文件管理子模块自身为了突破这个瓶颈,封装了文件的读写操作,在这里建立了一个LRU链表,通过一定的替换算法来对打开的文件进行管理,使得可以打开的文件数目不受操作系统平台的限制。
页面内存:
- PostgreSQL内存页面的默认大小是8kB。
- 页面的逻辑结构被定义成三个部分:
- 页首部(PageHeader)
- 元组记录空间(ltem Space)
- 特殊空间(Special Space)
- 页首部记录了页面的使用信息,这些信息由元组记录空间和特殊空间的偏移量地址、页面分布格式版本号和页面的事物日志记载点等等所组成。
- 元组记录空间是存储元组信息的地方,在这里面每个元组记录被称为一个ltem,Item由ltemld和元组数据组成,ltemld内部定义了元组在页面中的偏移量、ltem指针的状态以及元组项的比特位数长度。
- 特殊空间是为了页面操作所需要的。为了其他模块对页面进行操作,PostgreSQL内部定义了一些页面的操作函数。页面的相关操作包括页面初始化、页面添加、修复和删除。供其他子模块进行调用。这里值得关注的是页面修复与页面批量删除的操作函数。为了实现这两个操作函数,PostgreSQL专门定义了一个数据结构itemldSortData,它为方便在这两个函数中对元组项Item实现降序排序而定义。
2、PostgreSQL数据库介绍相关推荐
- Postgresql数据库介绍
文章目录 一.数据库介绍 1.数据库DB引擎排行榜 2.数据库的主要优势 一.数据库介绍 1.数据库DB引擎排行榜 当前数据库的使用情况 https://db-engines.com/en/ranki ...
- PostgreSql数据库介绍和使用
数据库背景 由Michael Stonebraker教授领导的POSTGRES项目是由防务高级研究项目局(DARPA).陆军研究办公室(ARO).国家科学基金(NSF) 以及 ESL, Inc 共同赞 ...
- Postgresql数据库介绍4——使用
SQL语句( The SQL Language) 本章描述PostgreSQL中的 SQL 的语法. 我们开始描述SQL的主要语法,这些内容是理解随后各章的基础,在那些章里面将详细介绍 SQL 命令如 ...
- Postgresql数据库介绍10——使用
索引(Indexes) Indexes are a common way to enhance database performance. An index allows the database s ...
- Postgresql数据库介绍8——使用
函数和操作(Functions and Operators) 逻辑操作符(Logical Operators) The usual logical operators are available: A ...
- postgreSql数据库学习使用
1.postgresql数据库介绍 1.1 产品简介 PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行. PostgreSQL 开发者把它念作 po ...
- Centos 7环境下源码安装PostgreSQL数据库
马上就要去实习了,工作内容是搞数据仓库方面的,用的是postgresql关系型数据库,于是自己先来了解下这种数据的用法,之后说说这个数据库和MySQL的关系和区别. 1.Postgresql简介 看了 ...
- [原创]Silverlight与PostgreSQL数据库的互操作(CURD完全解析)
今天将为大家介绍如何让Silverlight使用PostgreSQL作为后台数据库以及CURD操作. 准备工作 1)建立起测试项目 细节详情请见强大的DataGrid组件[2]_数据交互之ADO.NE ...
- Spring Boot中使用PostgreSQL数据库
在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...
最新文章
- Deformable 可变形的DETR
- 斯坦福新书《决策算法》,694页PDF免费下载
- oracle 加号和on,Oracle中连接与加号(+)的使用
- SSM框架整合(一)
- django——会话追踪技术
- 返回多维数组中某一维的最大值
- 标签管理体系之业务应用
- 最小二乘法移动最小二乘法
- java编程应该要的英语_java编程中常用英语单词
- java中有个很强大的工具jconsole.exe
- python入门经典-入门python有什么好的书籍推荐?
- 费波纳奇数c语言,费波纳切数列用C语言怎么编程
- 程序员找工作?只凭感觉去面试?不要做白日梦了,程序员必备面试题,脱口而出的专业语言,让你的薪水翻一番,建议收藏
- 【ML小结1】ML入门
- TD-LTE原理及其关键技术介绍
- 定积分(Definite Integral)
- 中国大学排名是怎样的?
- 植物野外识别速查图鉴
- 5G网络架构(接入网,传输网,核心网)
- 被全球数10万顶尖程序员关注收藏!这些JavaScript项目到底强在哪里?