中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

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

特性 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 在會話級進行設置。

PostgreSQL主要優勢:
1. PostgreSQL完全免費,而且是BSD協議,如果你把PostgreSQL改一改,然后再拿去賣錢,也沒有人管你,這一點很重要,這表明了 PostgreSQL數據庫不會被其它公司控制。oracle數據庫不用說了,是商業數據庫,不開放。而MySQL數據庫雖然是開源的,但現在隨著SUN 被oracle公司收購,現在基本上被oracle公司控制,其實在SUN被收購之前,MySQL中最重要的InnoDB引擎也是被oracle公司控制 的,而在MySQL中很多重要的數據都是放在InnoDB引擎中的,反正我們公司都是這樣的。所以如果MySQL的市場范圍與oracle數據庫的市場范 圍沖突時,oracle公司必定會犧牲MySQL,這是毫無疑問的。
2. 與PostgreSQl配合的開源軟件很多,有很多分布式集群軟件,如pgpool、pgcluster、slony、plploxy等等,很容易做讀寫分離、負載均衡、數據水平拆分等方案,而這在MySQL下則比較困難。
3. PostgreSQL源代碼寫的很清晰,易讀性比MySQL強太多了,懷疑MySQL的源代碼被混淆過。所以很多公司都是基本PostgreSQL做二次開發的。
4. PostgreSQL在很多方面都比MySQL強,如復雜SQL的執行、存儲過程、觸發器、索引。同時PostgreSQL是多進程的,而MySQL是線 程的,雖然并發不高時,MySQL處理速度快,但當并發高的時候,對于現在多核的單臺機器上,MySQL的總體處理性能不如PostgreSQL,原因是 MySQL的線程無法充分利用CPU的能力。
目前只想到這些,以后想到再添加,歡迎大家拍磚。
PostgreSQL與oracle或InnoDB的多版本實現的差別

我們提供的服務有:成都做網站、網站制作、成都外貿網站建設、微信公眾號開發、網站優化、網站認證、麻城ssl等。為上千余家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的麻城網站制作公司

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的主要劣勢在于:
1、最新版本和歷史版本不分離存儲,導致清理老舊版本需要作更多的掃描,代價比較大,但一般的數據庫都有高峰期,如果我們合理安排VACUUM,這也不是很大的問題,而且在PostgreSQL9.0中VACUUM進一步被加強了。
2、由于索引中完全沒有版本信息,不能實現Coverage index scan,即查詢只掃描索引,直接從索引中返回所需的屬性,還需要訪問表。而oracle與Innodb則可以;
PostgreSQL9.0中的特色功能:
PostgreSQL中的Hot Standby功能
也就是standby在應用日志同步時,還可以提供只讀服務,這對做讀寫分離很有用。這個功能是oracle11g才有的功能。

PostgreSQL異步提交(Asynchronous Commit)的功能:
這個功能oracle中也是到oracle11g R2才有的功能。因為在很多應用場景中,當宕機時是允許丟失少量數據的,這個功能在這樣的場景中就特別合適。在PostgreSQL9.0中把 synchronous_commit設置為false就打開了這個功能。需要注意的是,雖然設置為了異步提交,當主機宕機時,PostgreSQL只會 丟失少量數據,異步提交并不會導致數據損壞而數據庫起不來的情況。MySQL中沒有聽說過有這個功能。

PostgreSQL中索引的特色功能:
PostgreSQL中可以有部分索引,也就是只能表中的部分數據做索引,create index 可以帶where 條件。同時PostgreSQL中的索引可以反向掃描,所以在PostgreSQL中可以不必建專門的降序索引了。

當前文章:一個不錯的關于mysql和posgresql比較的帖子
網頁地址:http://m.2m8n56k.cn/article28/jdcpcp.html

成都網站建設公司_創新互聯,為您提供ChatGPT網站設計搜索引擎優化建站公司域名注冊企業建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 亚洲欧美日韩国产精品影院 | 亚洲国产天堂久久综合网站 | 欧美 日韩 国产在线 | aa级毛片毛片免费观看久 | 国产一区亚洲二区 | 久草免费在线播放视频 | 男人把女人桶到喷白浆的视频 | 亚洲日本视频在线观看 | 最新亚洲一区二区三区四区 | 欧美一级毛片片免费孕妇 | 九九在线免费观看视频 | 男女免费视频 | 国产亚洲精品看片在线观看 | 久久精品综合免费观看 | 131美女爱做免费毛片 | 亚洲综合无码一区二区 | 一级做a级爰片性色毛片视频 | 高清一本之道加勒比在线 | 免费国产成人高清视频网站 | 午夜影院黄色片 | 亚洲一级黄色毛片 | 精品午夜国产在线观看不卡 | 在线视频 国产交换 | 长腿美女被啪的欲仙欲死视频 | 日本www视频在线观看 | 国产成人精品视频在放 | 国产成人精品一区二区秒拍 | 三级亚洲 | 普通话对白国产精品一级毛片 | 中文字幕无线精品乱码一区 | 精品免费国产一区二区三区 | 日本不卡一区二区三区在线观看 | 精品国产三级v | 加勒比一区二区 | 成人三级在线播放线观看 | 亚洲依依成人综合在线网址 | 亚洲区精品久久一区二区三区 | 91欧美在线 | 美女视频一区二区三区 | 久久99精品国产免费观看 | 午夜国产理论 |