程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> PostgreSQL與MySQL比較

PostgreSQL與MySQL比較

編輯:關於MYSQL數據庫
特性  MySQL  PostgreSQL  實例  通過執行 MySQL
命令(MySQLd)啟動實例。一個實例可以管理一個或多個數據庫。一台服務器可以運行多個 MySQLd 實例。一個實例管理器可以監視
MySQLd 的各個實例。  通過執行 Postmaster
進程(pg_ctl)啟動實例。一個實例可以管理一個或多個數據庫,這些數據庫組成一個集群。集群是磁盤上的一個區域,這個區域在安裝時初始化並由一個目錄組成,所有數據都存儲在這個目錄中。使用
initdb 創建第一個數據庫。一台機器上可以啟動多個實例。  數據庫  數據庫是命名的對象集合,是與實例中的其他數據庫分離的實體。一個 MySQL  數據庫是命名的對象集合,每個數據庫是與其他數據庫分離的實體。每個數據庫有自己的系統編目,但是所有數據庫共享
pg_databases。  數據緩沖區  通過 innodb_buffer_pool_size
配置參數設置數據緩沖區。這個參數是內存緩沖區的字節數,InnoDB
使用這個緩沖區來緩存表的數據和索引。在專用的數據庫服務器上,這個參數最高可以設置為機器物理內存量的 80%。 Shared_buffers 緩存。在默認情況下分配 64 個緩沖區。默認的塊大小是 8K。可以通過設置
postgresql.conf 文件中的 shared_buffers
 客戶機使用 CONNECT 或 USE 語句連接數據庫,這時要指定數據庫名,還可以指定用戶
id 和密碼。使用角色管理數據庫中的用戶和用戶組。  客戶機使用 connect 語句連接數據庫,這時要指定數據庫名,還可以指定用戶 id
 MySQL 在數據庫級管理身份驗證。 基本只支持密碼認證。  PostgreSQL 支持豐富的認證方法:信任認證、口令認證、Kerberos 認證、基於
Ident 的認證、LDAP 認證、PAM 認證  加密  可以在表級指定密碼來對數據進行加密。還可以使用 AES_ENCRYPT 和
AES_DECRYPT 函數對列數據進行加密和解密。可以通過 SSL 連接實現網絡加密。  可以使用 pgcrypto 庫中的函數對列進行加密/解密。可以通過 SSL
 可以對 querylog 執行 grep。  可以在表上使用 PL/pgSQL 觸發器來進行審計。  查詢解釋  使用 EXPLAIN 命令查看查詢的解釋計劃。  使用 EXPLAIN 命令查看查詢的解釋計劃。  備份、恢復和日志  InnoDB
使用寫前(write-ahead)日志記錄。支持在線和離線完全備份以及崩潰和事務恢復。需要第三方軟件才能支持熱備份。  在數據目錄的一個子目錄中維護寫前日志。支持在線和離線完全備份以及崩潰、時間點和事務恢復。
 JDBC 驅動程序  可以從 參考資料 下載 JDBC 驅動程序。  可以從 參考資料 下載 JDBC 驅動程序。  表類型  取決於存儲引擎。例如,NDB 存儲引擎支持分區表,內存引擎支持內存表。  支持臨時表、常規表以及范圍和列表類型的分區表。不支持哈希分區表。
由於PostgreSQL的表分區是通過表繼承和規則系統完成了,所以可以實現更復雜的分區方式。  索引類型  取決於存儲引擎。MyISAM:BTREE,InnoDB:BTREE。  支持 B-樹、哈希、R-樹和 Gist 索引。  約束  支持主鍵、外鍵、惟一和非空約束。對檢查約束進行解析,但是不強制實施。  支持主鍵、外鍵、惟一、非空和檢查約束。  存儲過程和用戶定義函數  支持 CREATE PROCEDURE 和 CREATE FUNCTION
語句。存儲過程可以用 SQL 和 C++ 編寫。用戶定義函數可以用 SQL、C 和 C++ 編寫。  沒有單獨的存儲過程,都是通過函數實現的。用戶定義函數可以用
PL/pgSQL(專用的過程語言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 編寫。  觸發器  支持行前觸發器、行後觸發器和語句觸發器,觸發器語句用過程語言復合語句編寫。  支持行前觸發器、行後觸發器和語句觸發器,觸發器過程用 C 編寫。  系統配置文件  my.conf  Postgresql.conf  數據庫配置  my.conf  Postgresql.conf  客戶機連接文件  my.conf  pg_hba.conf  XML 支持  有限的 XML 支持。  有限的 XML 支持。  數據訪問和管理服務器  OPTIMIZE TABLE —— 回收未使用的空間並消除數據文件的碎片
myisamchk -analyze —— 更新查詢優化器所使用的統計數據(MyISAM 存儲 引擎) MySQL —— 命令行工具
MySQL Administrator —— 客戶機 GUI 工具  Vacuum —— 回收未使用的空間 Analyze —— 更新查詢優化器所使用的統計數據
psql —— 命令行工具 pgAdmin —— 客戶機 GUI 工具  並發控制  支持表級和行級鎖。InnoDB 存儲引擎支持
READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和 SERIALIZABLE。使用
SET TRANSACTION ISOLATION LEVEL 語句在事務級設置隔離級別。  支持表級和行級鎖。支持的 ANSI 隔離級別是 Read Committed(默認 ——
能看到查詢啟動時數據庫的快照)和 Serialization(與 Repeatable Read 相似 ——
只能看到在事務啟動之前提交的結果)。使用 SET TRANSACTION 語句在事務級設置隔離級別。使用 SET SESSION
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved