pgsql与mysql(主推优势)
MySQL对于无事务的MyISAM表,采用表锁定,一个长时间运行的查询很可能会长时间地阻碍对表的更新,而PostgreSQL不存在这样的问题。
PostgreSQL支持存储过程,要比MySQL好,具备本地缓存执行计划的能力;
PostgreSQL 的稳定性极强,数据相对于mysql更不易丢失
PG的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。
PG有极其强悍的 SQL 编程能力,比如window函数
支持用多种语言来写存储过程,对于R的支持也很好。
在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨;
PostgreSQL支持正则表达式查找,MySQL不支持;
PostgreSQL除了支持nest join外,还支持hash join和 sort merge join;MySQL的Join操作的性能非常的差,只支持Nest Join,所以一旦数据量大,性能就非常的差。
PostgreSQL有丰富的几何类型,有大量字典、数组、bitmap 等数据类型,。
PG 的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。用PG的话,文档数据库都可以省了。
大批量数据入库,PostgresSQL要求所有数据必须完全满足要求,有一条错误,整个数据入库过程失败;
如有不完善或者错误地方,请指正补充
pgsql安装
首先下载你所需要的版本PostgreSQL: File Browser
我以14.5版本为例。
前置检查下载(重要):
yum -y install -y readline-devel
yum install zlib-devel
1-解压
[root@localhost pgsql]# tar -zxvf postgresql-14.5.tar.gz
2-进入解压后的目录,执行configure文件,生成了GNUmakefile文件
./configure --prefix=/usr/local/pgsql
3- 有了GNUmakefile文件,现在就可以在当前目录下编译安装
make
make install
4-创建存放pgsql数据的目录
mkdir /usr/local/pgsql/data
5-我们需要初始化数据库,但是是禁止root执行的,所以你需要切换到其他用户,或者创建一个用户去执行,我这里创建一个用户
[root@localhost postgresql-14.5]# adduser ltdd
6-赋予数据目录 ltdd的权限
[root@localhost postgresql-14.5]# chown ltdd /usr/local/pgsql/data/
7-切换用户,初始化数据库
su ltdd
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
8-配置PGDATA环境变量
vim ~/.bashrc
export PGDATA=/usr/local/pgsql/data
source ~/.bashrc
9-启动数据库
[ltdd@localhost postgresql-14.5]$ /usr/local/pgsql/bin/pg_ctl start
10-创建数据库
/usr/local/pgsql/bin/createdb test
11-进入数据库
/usr/local/pgsql/bin/psql test
12-输入\password设置密码,后\q退出
13-配置监听地址和端口,修改为配置
vim /usr/local/pgsql/data/postgresql.conf
14-配置远程连接(data目录下)
[ltdd@localhost data]$ vim pg_hba.conf
15-重启服务(bin目录下)
[ltdd@localhost bin]$ ./pg_ctl restart
在windows上使用pgadmin(直接官网下载,无脑安装)连接展示
注意开放服务端5432端口
firewall-cmd --query-port=5432/tcp 查看是否开放
firewall-cmd --add-port=5432/tcp --permanent 开放
firewall-cmd --query-port=5432/tcp 重载
pg安装到此结束
pgagent安装
pgagent
是postgresql的一个任务调度代理,PgAgent是postgres数据库的插件针。
具体的目的是为了跟服务器独立隔离(服务器也有定时任务可以直接用,如果万一有那天我数据库搬家了呢搬到其他的服务器上了呢注意操作系统不同)所有为了后续的迁移维护做准备!把定时器全部由postgres管理。
0-前置
yum install -y openssl openssl-devel
yum install gtk2-devel
yum install boost*
pgagent下载地址:https://www.pgadmin.org/download/pgagent.php
cmake下载地址:Download | CMake
wxGTK下载地址:Downloads - wxWidgets
1-安装cmake
tar -zxvf cmake-3.24.1.tar.gz
./bootstrap
make
make install
2- 安装wxGTK
tar -jxvf wxWidgets-3.2.1.tar.bz2
./configure --enable-shared=no --enable-unicode=yes --prefix=/usr/local/wxGTK-2.8.12
make
make install
3-安装pgagent(进入解压后的文件夹)
/app/pgagent/cmake-3.24.1-linux-x86_64/bin/cmake /app/pgagent/pgAgent-4.2.1-Source
make
make install
小插曲
在安装pgagent中make时,出现gcc和boost版本不对应的问题,因为我之前升级过gcc,所以现在将gcc降级,然后重新cmake 一下pgagent的目录再make。
4-在数据库安装插件
./psql test 进入数据库
create extension pgagent ; 开启插件
5-开启
pgagent hostaddr=当前ip port=5432 dbname=test user=ltdd password=root
安装完成