国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

一個不錯的有關mysql和posgresql比較的帖子

2024-07-24 12:31:21
字體:
來源:轉載
供稿:網友
       特性 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 參數來更新緩沖區緩存。
 
觸發器 支持行前觸發器、行后觸發器和語句觸發器,觸發器語句用過程語言復合語句編寫。 支持行前觸發器、行后觸發器和語句觸發器,觸發器過程用 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 在會話級進行設置。
 
PostgreSQL與oracle或InnoDB的多版本實現最大的區別在于最新版本和歷史版本是否分離存儲,PostgreSQL不分,而oracle和InnoDB分,而innodb也只是分離了數據,索引本身沒有分開。
PostgreSQL的主要優勢在于:
1. PostgreSQL沒有回滾段,而oracle與innodb有回滾段,oracle與Innodb都有回滾段。對于oracle與Innodb來說, 回滾段是非常重要的,回滾段損壞,會導致數據丟失,甚至數據庫無法啟動的嚴重問題。另由于PostgreSQL沒有回滾段,舊數據都是記錄在原先的文件 中,所以當數據庫異常crash后,恢復時,不會象oracle與Innodb數據庫那樣進行那么復雜的恢復,因為oracle與Innodb恢復時同步 需要redo和undo。所以PostgreSQL數據庫在出現異常crash后,數據庫起不來的幾率要比oracle和mysql小一些。
2. 由于舊的數據是直接記錄在數據文件中,而不是回滾段中,所以不會象oracle那樣經常報ora-01555錯誤。
3. 回滾可以很快完成,因為回滾并不刪除數據,而oracle與Innodb,回滾時很復雜,在事務回滾時必須清理該事務所進行的修改,插入的記錄要刪除,更新的記錄要更新回來(見row_undo函數),同時回滾的過程也會再次產生大量的redo日志。
4. WAL日志要比oracle和Innodb簡單,對于oracle不僅需要記錄數據文件的變化,還要記錄回滾段的變化。
 
PostgreSQL異步提交(Asynchronous Commit)的功能:
這個功能oracle中也是到oracle11g R2才有的功能。因為在很多應用場景中,當宕機時是允許丟失少量數據的,這個功能在這樣的場景中就特別合適。在PostgreSQL9.0中把 synchronous_commit設置為false就打開了這個功能。需要注意的是,雖然設置為了異步提交,當主機宕機時,PostgreSQL只會 丟失少量數據,異步提交并不會導致數據損壞而數據庫起不來的情況。MySQL中沒有聽說過有這個功能。
 
PostgreSQL中索引的特色功能:
PostgreSQL中可以有部分索引,也就是只能表中的部分數據做索引,create index 可以帶where 條件。同時PostgreSQL中的索引可以反向掃描,所以在PostgreSQL中可以不必建專門的降序索引了。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肇庆市| 新龙县| 万宁市| 大方县| 宜黄县| 东台市| 尼木县| 泰兴市| 乌鲁木齐市| 尼勒克县| 肃北| 白山市| 巴南区| 叶城县| 和田县| 庄河市| 九龙县| 宁国市| 诏安县| 图片| 长宁县| 姜堰市| 南阳市| 明星| 盐山县| 永州市| 巩义市| 河源市| 若羌县| 桑植县| 贵定县| 时尚| 合川市| 阜新| 博客| 运城市| 天等县| 道真| 新郑市| 团风县| 永平县|