笔记|pg数据库

一:2种数据库
RDBMS:关系型数据库管理系统 -表的形式(列,行)
oracle mysql sqlserver pg sybase db2等
NOSQL:非关系型管理系统 -文本形式存储数据
二:
表空间:存放数据具体的位置
数据库:存放表的容器,它是一个逻辑单位
用户:
多个模式:schema
对象:用户对象的集合(多个表,视图。。。。)
三:默认
pg_default 默认表空间
postgres:默认数据库(管理者)
public:默认模式
四:连接
登录pg数据库 pg_ctl -D "F:\pgsql\data^" start
连接数据库:psql -U postgres
五:创建
创建用户LLL密码LLL :
CREATE USER LDY PASSWORD ‘LLL’;
CREATE ROLE(PG数据库用户名与角色相同)
创建模式sports:
CREATE SCHEMA sports AUTHORIZATION LLL;
创建模式下的表emp:
CREATE TABLE sports.emp(id integer not null);
创建表空间LDYTBS1:
CREATE TABLESPACE LDYTBS1 OWNER POSTGRES LOCATION ‘F:\pgsql\LLLTBS1’;
删除表空间LDYTBS1:
drop tablespace;
DROP TABLESPACE
\dn :显示数据库中所有模式
\dS+ :显示所有的
help …帮助
最后用一下结束;
\l(英文) :数据库列表
\db :表空间
\c LDYTBS1 LDY :LDYTBS1数据库连接LDY用户
\dt :关联列表
\h … :查看语法
\h :查看语法
DBA
实例instance(工具用参数)和数据库(文件)--------内存结构,后台进程
登录 pg_ctl -D "F:\pgsql\data^" start
psql -U postgres //用户进程
**在用户请求时候,主进程Postmaster派生出来,服务进程postgres跟用户打交道
进程私用内存区 (temp_buffers, work_mem,maintenance_work_mem)
用来保存服务进程postgres
共存内存区(shared_buffers,wal_buffers)
shared_buffers共享缓冲区–数据缓存区,默认的数据块的单位是8k
日志缓存区的大小wel_buffers(共享内存)
**pg I/O单位:块(8K)
WAL --Write Ahead Log预写式日志
数据缓存区shared_buffers:缓存曾经访问到的数据块,以便共享(再次被人访问到)
日志缓存区wel_buffers:暂时存放用户请求,如果请求写入日志文件,则删除释放空间。
配置文件(在Data下):
客户端(pg_hba.conf)
#TYPE DATA BASE ADDRESS METHON(信任)
local all all trust #服务器本地用户可信登录
host replication replica 0.0.0.0/0 md5 #流复制用户密码验证登录
host all postgres 0.0.0.0/0 reject #拒绝超级用户从网络登录
postgresql.conf
key=value
listen_addresses=’
’ #监听所有端口
post=5866 #监听TCP端口默认5866
max_connections = 100 #最大并发连接数100
shared_buffers #数据缓存区,默认128mb
wal_buffers #日志缓存区
work_mem #用到内部排序操作和哈希表的内存量
maintenance_work_mem #内存空间大小
postgresql_auto.conf
数据缓冲区:缓存曾经访问过的数据块,以便共享(再次被人访问到)
日志缓冲区:暂时存放用户的请求,如果请求写入日志文件,则删除,释放空间
本地用户登录 和 远程用户登录
容灾 容错灾难
【笔记|pg数据库】性能调优
database cluster:多个数据库的集合
一个服务器可以有多个database cluster
create table test1 (name varchar); 默认存放在当前的数据库
create table test2(name varchar)tablespace tbs3; 存放在tbs3表空间中。
模式:用户下所有(表和索引)对象的集合
\l --列出数据库的名字
\l+ --列车数据库对应的表空间
1、创建一个新的数据库
create database newdb;
2、查询该数据库使用哪个表空间:
\l+
注意:数据库默认使用的表空间为pg_default。
3、查看当前有几个表空间:
\db
4、创建表空间:
CREATE TABLESPACE users LOCATION ‘e:\pgsql\data\users’;
5、查看表空间:
\db
6、创建数据库指定某个表空间:
create database users TABLESPACE users;
\l+
7、创建用户scott,要求把表默认存放在users数据库下:
7.1、登录到users数据库:
\c users postgres
7.2、创建用户:
create user scott;
8、使用scott用户登录:
8.1:如果已经在postgres环境中:
\c users scott
8.2、如果是在windows环境下:
psql -U scott -d users
9、使用scott用户在users数据库下创建表:
create table test1 (name varchar);
\dt --查看的是当前数据库下用户的表。
10、使用scott用户在users数据库下创建sports和art模式:
10.1、打开另外一个窗口,以postgres用户登录,然后授权:
psql -U postgres
grant all on database users to scott;
10.2、用scott用户创建模式:
create schema sports;
create schema art;
\dn --查看当前的模式
11、为scports和art模式分别创建两张表:
create table sports.zhuqiu (name varchar);
create table art.ganqin (name varchar);
12、pg在显示表的时候是根据搜索路径来执行,查看搜索路径:
show search_path;
set search_path to “$user”,public,sports,art;
\dt
显示所有模式下的表名字。
pg_ctl --help//帮助
pg_ctl stop -m fast//关闭
pg_ctl start//启动
quit//退出
pg_ctl restart //重启
用户连接 psql -U postgres
pg_ctl register -N PostgreSQL -D F:\pgsql\data 添加到服务,可以改成服务里面启动名字为Postgresql
sc delete 名字 //删除服务
pg_ctl restart
pg_ctl reload //重启,不影响用户
pg_ctl stop -m smart //缺省模式,所有用户都关闭,才能关闭
pg_ctl stop fast//强制模式,对未断开的客户端进行回滚,关闭数据库
\set \所以参数全部返回
sql中
DDL:CREATE DROP TRUNCATE ALTER–自动提交
DCL:GRANT REVOKE–自动提交
DML:INSERT UPDATE DELETE–手动提交,回滚
DQL:SELECT
在关系型数据库中:列构成表,行构成数据
char固定(最大2000), varchar不固定长度(最大4000) enum枚举
\dS系统表,架构模式
pg_tables -----list of tables
Pg_constraints ------list of con
\c (更加数据库) postgres
\l查看数据库
创建数据库reate database 名字
gant all on database 数据库名字 to 用户名字

    推荐阅读