大家好,欢迎来到IT知识分享网。
pgsql简介
1、pg和mysql的优劣势
1、PG相对于MYSQL的优势
- PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景
- PostgreSQL的各种丰富的功能和对事务的支持,可以满足实际金融业务的交易需求;
- PostgreSQL的物理复制保证数据库零丢失,相对于MySQL基于binlog的逻辑复制。可以高效快速地将数据库可以跨机房,设置跨region同步,可以满足业务的在各region本地高效读的需求
2、MySQL相对于PG的优势
- innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触 发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀。
- MySQL采用索引组织表,这种存储方式非常适合基于主键匹配的查询、删改操作,但是对表结构设计存在约束。
- MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作。
- MySQL相对于PG在国内的流行度更高,PG在国内显得就有些落寞了。
- MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。
2、yum下载安装
下载官网https://www.postgresql.org/download/,可选版本,复制脚本进行脚本一键安装即可,rocky8自带10版本,ubuntu2004自带12版本,端口使用5432
默认安装路径在/var/lib/postgresql下
2.1、启动初始化
ubuntu安装完成后需进行数据库初始化安装,即创建相关数据库文件
#12表示版本,其他版本按需选择 #方法1 #初始化并启动 pg_crearecluster 12 main --start #方法2 su - postgres /usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/data #启动服务-l 指定日志文件logfile /usr/lib/postgresql/12/bin/pg_ctl -D /var/lib/postgresql/data -l logfile start
3、源码编译安装
#环境准备 #关闭防火墙和SELINUX #内核参数优化 vim /etc/sysctl.conf sysctl -p #vim /etc/security/limits.conf #安装依赖包 #yum gcc make readline-devel zlib-devel #apt apt update gcc make libreadline-dev zlib1g-dev #源码准备,以14.2版本为例 wget https://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz tar xf postgresql-14.2.tar.gz cd postgresql-14.2 #该文件可查看具体编译安装启动步骤帮助 cat postgresql-14.2/INSTALL #查看编译选项 pg_config --configure #编译安装 . /configure --prefis=/apps/pgsql #指定程序安装路径 make -j 2 world #编译源码的同时也编译安装相关的帮助文档及其他模块 make install-world #编译源码的同时也编译安装相关的帮助文档及其他模块 #必须创建一个操作系统的普通账号来用于启动服务,且在进行初始化操作时使用该账号来默认作为管理员账号 #ubuntu默认不创建家目录,可-m来创建,且-s指定shell类型,centos和ubuntu通用指令 useradd -s /bin/bash -m -d /home/postgres postgres echo -e '\n' | passwd postgres #初始化数据库的目录 mkdir -pv /pgsql/data/ chown postgres. /pgsql/data/ #设置环境变量,免于写路径,减少麻烦 vim /etc/profile.d/pgsql.sh export PGHOME=/apps/pgsql #程序安装路径 export PATH=$PGHOME/bin/:$PATH #二进制程序路径 export PGDATA=/pgsql/data #初始化数据库的数据存放路径 export PGUSER=postgres #启动账号 export MANPATH=/apps/pgsql/share/man:$MANPATH #man帮助 which initdb
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/123163.html