
PG简介
posgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)。
BSD许可证。(可以基于开源版本二次开发,可以不开源使用。 mysql的GPL是二开之后必须也开源)
postgreSQL 的 Slogan 是: “世界上最先进的开源关系型数据库”。
“开源界的Oracle”, 是去O(oracle)的首选.
mysql 已经被oracle收购了。
官网:https://www.postgresql.org/
中文社区: http://www.postgres.cn/index.php/v2/home
全球数据库排行: https://db-engines.com/en/
中国数据库排行: https://www.modb.pro/dbRank
部分是基于pg二开的。
历史沿革
最初设想于1986年, 当时被叫做Berkley Postgres Project。教学用。
Postgre95在开源社区开放。
1996年, postgresSQL6.0发布。
2005年,发布8.0版本,开始支持windows系统环境。
postgreSQL 9.0 发布, 支持64位windows系统,异步流数据复制, HostStandby;
postgreSQL 9.1 发布, 支持数据同步复制,等特性
目前笔者的生产环境版本是
PostgreSQL 15.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
pg和mysql的比较
pg相对于mysql优势
在SQL的标准实现上要比MYSQL完善,而且功能实现比较严谨。
对表连接支持较完整,优化器功能较完整,支持的索引类型多,复杂查询能力强。
pg主表采用堆表存放,mysql采用索引组织表,能够支持比mysql更大的数据量。
pg的主备复制属于物理复制,相对于mysql基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能影响更小。
pg支持json和其他noSQL功能,如本机xml支持和使用hstore的键值对,它还支持索引json数据加快访问速度,特别是10版本jsonb更是强大。
pg完全免费,bsd协议,如果你把pg拿去改一改,拿去卖钱也没人管你。 mysql虽然开源,但是bsd协议已经被oracle收购了,由oracle控制
mysql相对于pg优势
innodb 是基于回滚段实现的mvcc机制,相对pg新老数据一起存放的基于xid的mvcc机制是占优势的,新老数据一起存放需要定时触发 vacuum, 会带来多余的io和数据库加锁开销,引起数据库整体并发能力下降。而且vacuum清理不及时,还可能英法数据膨胀。
mysql采用索引组织表,这种存储方式非常适合基于主键匹配的查询,删改操作,但是对表结构设计存在约束。
mysql的优化器比较简单,系统表,运算符,数据类型实现比较精简,非常适合简单的查询操作。
mysql相对于pg在国内流行度更高。
mysql的存储引擎插件化机制,是的它的应用更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据查询场景。
总结来说
从应用场景上,pg更加适合严格的企业应用场景,比如金融,电信,ERP, CRM,但不仅限于此,pg的json, jsonb, hstore等数据格式,特别使用一些大数据格式的分析; 而mysql更加适合业务逻辑比较简单,数据可靠性要求较低的场景,比如google, facebook, alibaba等。当然现在mysql的innodb引擎大理发展,功能表现良好。
pg下载安装
linux安装,参考官网,这里重点在于学习使用,所以这里不详细介绍。
docker安装
1 | docker pull postgres:14 |
使用dbeaver可以连接:
进去docker连接:
1 | psql -U postgres -d postgres -h 127.0.0.1 -p 5432 |
pg数据类型
三类常见的:
数值类型
smallint 2字节 -32768 到 32767
integer 4字节 -2147483648 到 2147483647
bigint 8字节 -9223372036854775808 到 9223372036854775807
decimal 可变长 精确的十进制数值
numeric 可变长 精确的十进制数值
real 4字节 单精度浮点数
double 8字节 双精度浮点数字符串类型
char(n) 固定长度字符串,n为字符串长度
varchar(n) 可变长度字符串,n为字符串长度
text 变长字符串日期/时间类型
timestamp 日期和时间
date 日期
time 时间
除此之外还有boolean, money 和几何数据
1 | create table test( |
- 本文标题:PostgreSQL数据库总结
- 本文作者:形而上
- 创建时间:2024-06-08 18:19:40
- 本文链接:https://deepter.gitee.io/2024_06_08_pg/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!