DuckDB_SQL-使用示例以及和PG之間的概念

辰令發表於2024-08-16

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連線資料庫

相關文章