Postgresql

常用命令

基本命令:
-h:数据库服务器地址;
-p:数据库端口号;
-U:U 大写,表示用户名;
-d:数据库名称;
-f:把备份文件放在哪里;

初始化数据库:
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
设置密码:\password
列出所有数据库:\l
列出数据库下所有表:\d 或 \dt
切换数据库:\c database_name
查看表结构: \d table_name
退出:\q
列出所有用户:\du
切换用户:\c - user_name
查看SQL命令解释:\h select
查看psql命令列表:?
查看时区和时间:select now(); 或show timezone; 或select * from pg_timezone_names;
修改时区:set time zone “RPC”; # session级
alter role all/rolename set timezone=“UTC”; # 用户级别
alter database dbname set timezone=“UTC”; #数据库级别全局修改时区需修改配置文件-postgresql.conf

修改管理员密码:alter user postgres with password “Isoon@qzmp”;
添加数据库新用户:create user centyuan with password ‘123456’;
创建数据库:create database exampledb owner centyuan;
将example数据库所有权限赋予centyuan,否则centyuan只能登录,没有任何数据库操作权限。
grant all privileges on database exampledb to centyuan;

登录:
1.psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
2.sudo -u postgres psql
3.sudo su postgres

配置数据库允许远程连接访问:

1修改监听地址cd
sudo gedit /etc/postgresql/10/main/postgresql.conf
#将listen_addresses=‘localhost’改为listen_addresses=’*’
2修改可访问用户的IP段
sudo gedit /etc/postgresql/10/main/pg_hba.conf
#在文件末尾添加 host all all 0.0.0.0 0.0.0.0 md5 #表示允许任何IP连接

数据备份:
pg_dump –h 127.0.0.1 -p 5432 -U postgres -c –f dbname.sql dbname
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
使用如下命令可对全部pg数据库进行备份:
pg_dumpall –h 127.0.0.1 –p 5432 -U postgres –c –f db_bak.sql

数据恢复:

windows:

psql -h localhost -U postgres -d new_db -f “C:/emoneysit.bak”

ubuntu:

psql -h localhost -U emmweb -d emmweb < /home/jianghai/Desktop/emmweb.bak

Postgresql的事务级别

>读未提交(Read Uncommitted):一个事务可以读取另一个事务未提交的数据,可能会导致脏读、不可重复读和幻读问题。
>读已提交(Read Committed):一个事务只能读取另一个事务已经提交的数据,可以避免脏读问题,但是可能会出现不可重复读和幻读问题。
>可重复读(Repeatable Read):一个事务在执行期间多次读取同一数据,保证每次读取的数据都是一致的,可以避免脏读和不可重复读问题,但是可能会出现幻读问题。
>序列化(Serializable):最高的隔离级别,保证所有事务的执行顺序和结果与串行执行的结果相同,可以避免脏读、不可重复读和幻读问题,但是会影响并发性能

mysql性能极限:
mysql单表字段数:建议20-50
mysql默认单字段大小:存储最大空间为1M,可以修改max_allowed_packet=16
mysql单表:老版mysql3.22中,还是ISAM存储引擎,单表限制为4GB
之后为INNODB 单表限制64TB
数据库:
Cmshelp 团队做CMS 系统评测时的结果来看,
MySQL单表大约在2千万条记录(4G)下能够良好运行,经过数据库的优化后5千万条记录(10G)下运行良好。阿里巴巴《Java 开发手册》提出单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。

PostgreSQL性能极限:
最大单个数据库大小:不限最大数据单表大小:32TB
单条记录大小:1.6TB
单字段最大允许:1GB
单表允许最大记录数:不限单表最大字段数:250-1600取决于字段类型单表最大索引数:不限


Postgresql
https://centyuan.github.io/2023/11/07/数据库/Postgresql_Note/
作者
hlyuan
发布于
2023年11月7日
许可协议