duckdb
Catalog(目录): 表示整个数据库或数据库管理系统。一个数据库服务器可以包含多个数据库,每个数据库都有自己的 Catalog
1.database --catalog catalog_name
database: In‑Memory vs. Persistent Database
database-- database_list new_db.my_schema:
system
temp
2.Schema 用于组织和分类数据库对象
schema catalog or a schema --namespace
information_schema提供视图以查看表、视图和函数信息,
pg_catalog作为系统Schema,包含系统函数和数据类型定义,对Postgres的正常运行至关重要
pg_catalog.pg_namespace来查看当前数据库中全部的Schema
创建的数据库 database
system
temp
tables(表)
Column(列)
提供了一定程度的隔离和命名空间
基本技术概念
源码:数据库事务- 事务的ACID特性
session--只有两种执行结果:提交commit或回滚 ROLLBACK (All or Nothing)
悲观机制与乐观机制
悲观锁 LOCK机制
乐观锁(Optimistic Concurrency Control,缩写“OCC”),又叫做乐观并发控制,
MVCC 多版本并发控制(Multiversion concurrency control, MCC 或 MVCC)
MVCC的实现,是通过保存数据在某个时间点的快照来实现的
WAL全称是write ahead log,是PG中的online redo log 也就是先写日志,再写磁盘
数据文件的改变必须先写入日志,即日志记录刷新到永久储存之后,才能被写
(即回滚恢复 REDO)
MVCC通过乐观并发控制提高性能,WAL确保数据完整性并优化IO
隔离级别
redo log(重做日志) undo log(回滚日志) binlog(归档日志)
分布式一致性
2PC(2 Prepare Commit) (协调者宕机问题) (和zab有区别,zab是过半机制)
3PC(CanCommit、PreCommit、DoCommit) (协调者宕机问题)
Paxos算法 (分布式一致性问题最有效的算法)(引入多个协调者)
Raft协议 (引入主节点,竞选确定主节点;节点类型:Follower、Candidate 和 Leader)
1)(3) 称为事务的两阶段提交.整个流程称之为WAL技术,
即write ahead logging技术它的关键点就是先写日志,再写磁盘
Postgresql
0.PostgreSQL模块和代码目录结构
Main函数进来之后,启动Postmaster进程,通过Postmaster发送不同的Postgres进程。
如果Postgres收到Libpq请求,最终会让执行引擎来执行相关命令
1.PostgreSQL 服务进程
2.连接属性
默认数据库是‘postgres',
默认模式‘public'
系统模式主要有 pg_catalog、information_schema、pg_temp等等
pg_catalog是系统Schema,包含了系统的自带函数/数据类型定义等,pg_catalog是保障postgres正常运转的重要基石
information_schema是方便用户查看表/视图/函数信息提供的,它大多是视图,MySQL,SQL Server同样有information_schema这个schema。
3.PGDATA目录包含几个子目录和控制文件。
常见的位置PGDATA是/var/lib/pgsql/data
除此之外,集群配置文件postgresql.conf、pg_hba.conf和pg_ident.conf一般存储在PGDATA
PostgreSQL的 日志文件 主要包括运行日志文件,重做日志文件,事务日志文件,服务器日志文件。
PostgreSQL的 控制文件 主要记录了数据库相关的运行信息。
比如id,open,wal,checkpoint的位置等等,其中controlfile是很重要的文件
PostgreSQL的 WAL文件 通常默认保存在$PGDATA/pg_wal目录下
4.PostgreSQL的常用命令
首先,使用psql连接数据库
标签:PostgreSQL,示例,数据库,catalog,DuckDB,pg,SQL,日志,schema
From: https://www.cnblogs.com/ytwang/p/18362639