常用命令

  1. \h:查看SQL命令的解释,比如\h select
  2. \?:查看psql命令列表。
  3. \l:列出所有数据库。
  4. \c [database_name]:连接其他数据库。
  5. \d:列出当前数据库的所有表格。
  6. \d [table_name]:列出某一张表格的结构。
  7. \du:列出所有用户。
  8. \e:打开文本编辑器。
  9. \conninfo:列出当前数据库和连接的信息。

安装

  1. # 设置psql 的源
  2. sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  3. # 下载安装包
  4. yum install --downloadonly --downloaddir=. psql12 postgresql12 postgresql12-server postgresql12-client
  5. # 安装
  6. rpm -ivh
  7. sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
  8. /usr/pgsql-12/bin/initdb -D /home
  9. systemctl enable postgresql-12
  10. systemctl start postgresql-12
  11. # 配置文件目录
  12. cd /var/lib/pgsql/12/data/
  13. # 验证
  14. su - postgres
  15. psql
  16. \l
  17. # 修改密码
  18. postgres=# \password postgres
  19. Enter new password:
  20. Enter it again:
  21. postgres=# CREATE USER rails_payment WITH PASSWORD 'rails_payment';
  22. CREATE ROLE
  23. postgres=# CREATE DATABASE payment_dev OWNER rails_payment;
  24. CREATE DATABASE

postgresql 结构

image.png

客户端每次建立连接的时候,postgre启动一个服务进程给这个连接服务,是进程架构模型

mysql是线程架构模型

BgWriter

后台写入进程,是周期性的写入

AutoVacuum

delete 操作后,原来数据不会被立即删除,更新数据时也不会再原来的数据上更新,而是新生成一行数据,原来的数据只是被标记删除,没有并发事务读到该数据时,这个进程就会清理数据

共享内存