MySQL和PostgreSQL 對比

一、MySQL

MySQL 在所有大型數據庫服務器中最流行的一個. 它的特性豐富,產品的開源性質使得其驅動了線上大量的網站和應用程序. 要入手 MySQL 相對簡單,開發人員可以在互聯網上面訪問到大量有關這個數據庫的信息.

注意: 由於這個產品的普及性,大量的第三方應用、工具和集成庫對於操作這個RDBCMS的方方面面大有幫助.

Mysql沒有嘗試去實現SQL標準的全部,而是爲用戶提供了很多有用的功能. 作爲一個獨立的數據庫服務器,應用程序同Mysql守護進程的交互,告訴它去訪問數據庫自身 -- 這一點不像 SQLite.

1、MySQL支持的數據類型

TINYINT一個非常小的整數
SMALLINT一個小整數
MEDIUMINT一箇中間大小的整數
INT or INTEGER一個正常大小的整數
BIGINT一個大的整數
FLOAT一個小的 (單精度) 浮點數,不能是無符號的那種
DOUBLE, DOUBLE PRECISION, REAL一個正常大小 (雙精度) 的浮點數,不能使無符號的那種
DECIMAL, NUMERIC沒有被包裝的浮點數。不能使無符號的那種
DATE一個日期
DATETIME一個日期和時間的組合
TIMESTAMP一個時間戳
TIME一個時間
YEAR一個用兩位或者4位數字格式表示的年份(默認是4位)
CHAR一個固定長度的字符串,存儲時總是在其固定長度的空間裏右對齊
VARCHAR一個可變長度的字符串
TINYBLOB, TINYTEXT一個BLOB或者TEXT列,最大長度255 (2^8 - 1)個字符
BLOB, TEXT一個BLOB或者TEXT列,最大長度 65535 (2^16 - 1)個字符
MEDIUMBLOB, MEDIUMTEXT一個BLOB或者TEXT列,最大長度 16777215 (2^24 - 1)個字符
LONGBLOB, LONGTEXT一個BLOB或者TEXT列,最大長度4294967295 (2^32 - 1) 個字符
ENUM一個枚舉類型
SET一個集合

 

2、MySQL的優點

容易使用安裝MySQL非常容易。第三方庫,包括可視化(也就是有GUI)的庫讓上手使用數據庫非常簡單
功能豐富MySQL 支持大部分關係型數據庫應該有的 SQL 功能——有些直接支持,有些間接支持
安全MYSQL 有很多安全特性,其中有些相當高級
靈活而強大MySQL 能處理很多數據,此外如有需要,它還能“適應”各種規模的數據
快速放棄支持某些標準,讓 MySQL 效率更高並能使用捷徑,因此帶來速度的提升

 

3、MySQL的缺點

已知的侷限從設計之初,MySQL 就沒打算做到全知全能,因此它有一些功能侷限,無法滿足某些頂尖水平應用的需求
可靠性問題MySQL 對於某些功能的實現方式(例如,引用,事務,數據審覈等) 使得它比其他一些關係型數據庫略少了一些可靠性
開發停滯儘管 MySQL 理論上仍是開源產品,也有人抱怨它誕生之後更新緩慢。然而,應該注意到有一些基於 MySQL 並完整集成的數據庫(如 MariaDB),在標準的 MySQL 基礎上帶來了額外價值

 

4、何時使用 MySQL?

分佈式操作當你需要的比SQLite可以提供的更多時,把MySQL包括進你的部署棧,就像任何一個獨立的數據庫服務器,會帶來大量的操作自由和一些先進的功能
高安全性MySQL的安全功能,用一種簡單的方式爲數據訪問(和使用)提供了可靠的保護
Web網站 和 Web應用絕大多數的網站(和Web應用程序)可以忽視約束性地簡單工作在MySQL上。這種靈活的和可擴展的工具是易於使用和易於管理的——這被證明非常有助於長期運行
定製解決方案如果你工作在一個高度量身定製的解決方案上,MySQL能夠很容易地尾隨和執行你的規則,這要感謝其豐富的配置設置和操作模式

 

5、何時不用 MySQL?

SQL 服從性因爲 MySQL 沒有[想要]實現 SQL 的全部標準,所以這個工具不完全符合SQL。如果你需要對這樣的關係數據庫管理系統進行整合,從MySQL進行切換是不容易的
併發即使MySQL和一些存儲引擎能夠真地很好執行讀取操作,但併發讀寫還是有問題的
缺乏特色再次提及,根據數據庫引擎的選擇標準,MySQL會缺乏一定的特性,如全文搜索

 

 

二、PostgreSQL

PostgreSQL 是一個先進的,開放源代碼的[對象]-關係型數據庫管理系統,它的主要目標是實現標準和可擴展性. PostgreSQL, 或者說是 Postgres, 試圖把對 ANSI/ISO SQL標準的採用與修正結合起來.

對比其他的RDBMS, PostgreSQL以它對於對象-關係和或關係型數據庫功能,比如對於可靠事務,例如原子性,一致性,隔離性和持久性(ACID)的完全支持,這些東西的高度需求和集合的支持,以示其獨特性.

由於強大的底層技術, Postgres對於高效的完成許多處理任務很有一手. 得益於其多版本併發控制 (MVCC)的實現,在沒有讀取鎖的前提下也能達成併發, 這也同樣確保了ACID的實施.

PostgreSQL是高度可編程的, 因而可以使用被稱作“存儲過程”的自定義程序進行擴展. 這些功能可以被創建用來簡化一個寫重複、複雜並且常常需要數據庫操作的任務的執行.

雖然特性強大,但這個 DBMS並沒有MySQL那麼流行, 可還是有許多迷人的第三方工具和庫被設計出來用於使得對PostgreSQL的操作簡化. 如今通過許多操作系統默認的包管理器輕鬆的獲取PostgreSQL已成爲可能.

1、PostgreSQL支持的數據類型

bigint有符號的八位整數
bigserial自增長的八位整數
bit [(n)]固定長度的位串
bit varying [(n)]可變長度的位串
boolean邏輯布爾值(true/false)
box在一個平面上的矩形框
bytea二進制數據("位數組")
character varying [(n)]可變長度的字符串
character [(n)]固定長度的字符串
cidrIPv4 或者 IPv6 網絡地址
circle平面上的一個圓
date日曆日期 ( 年月日)
double precision雙精度浮點數(8位)
inetIPv4 或者 IPv6 主機地址
integer有符號的四位整數
interval [fields] [(p)]時間跨度
line平面上的一個無限長的直線
lseg平面上的一個線段
macaddrMAC (媒體訪問控制)地址
money貨幣金額
numeric [(p, s)]可選精度的精確數字
path一個平面上的幾何路徑
point一個平面上的幾何點
polygon一個平面上的閉合的幾何路徑
real單精度浮點數(4 位)
smallint有符號的兩位整數
serial自增長4位整數
text可變長度字符創
time [(p)] [without time zone]一天中的時間(無時區)
time [(p)] with time zone一天中的時間,包含時區
timestamp [(p)] [without time zone]日期和時間(沒有時區)
timestamp [(p)] with time zone日期和時間,包含時區
tsquery文本搜索查詢
tsvector文本搜索文檔
txid_snapshot用戶級事務ID快照
uuid通用的唯一標識符
xmlXML 數據

 

2、PostgreSQL的優點

標準支持 SQL 的開源關係型數據庫PostgreSQL 是一個開源的,免費的,同時非常強大的關係型數據管理系統
強大的社區PostgreSQL 背後有熱忱而經驗豐富的社區,可以通過知識庫和問答網站獲取支持,全天候免費
強大的第三方支持即使其本身功能十分強大,PostgreSQL 仍附帶有許多強大的開源第三方工具來輔助系統的設計、管理和使用
可擴展性可以用預先存儲的流程來程序性擴展 PostgreSQL ,一個高級的關係型數據庫理應如此
面向對象PostgreSQL 不只是一個關係型數據庫,還是一個面向對象數據庫——支持嵌套,及一些其他功能

3、PostgreSQL的缺點:

性能對於簡單而繁重的讀取操作, 超過了 PostgreSQL 的殺傷力,可能會出現比同行(如MySQL)更低的性能
普及按給出的該工具的性質,從普及度來說它還缺乏足夠後臺支撐,儘管有大量的部署——這可能會影響能夠獲得支持的容易程度
託管由於上述因素的影響,要讓主機或服務提供商提出使用PostgreSQL實例是很難的

 

4、何時使用PostgreSQL?

數據完整性當可靠性和數據完整性是絕對必要而無需理由時,PostgreSQL是更好的選擇
複雜的自定義過程如果你需要你的數據庫執行自定義過程,可擴展的PostgreSQL是更好的選擇
整合在將來,如果可能要把整個數據庫系統遷移到另一個適當的解決方案(例如Oracle)中,PostgreSQL對於這種切換將是最兼容和易於操作的
複雜的設計相比其他的開源和免費的 RDBMS(關係數據庫管理系統)實現來說,對於複雜的數據庫設計,PostgreSQL提供了大部分的功能和可能性,同時並沒放棄其他有價值的地方

 

5、何時不用 PostgreSQL?

速度如果你需要的只是快速的讀取操作, PostgreSQL 不是爲此而準備的工具
簡化體制除非你需要絕對的數據完整性,原子性,一致性,隔離性,耐久性,或複雜的設計,PostgreSQL 對簡化體制來說是殺手
複製除非你願意花不少時間,精力和資源,否則對於那些缺乏數據庫和系統管理經驗的人來說,實現與MySQL的(主從)複製可能不容易
發佈了294 篇原創文章 · 獲贊 57 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章