數據庫 之 數據庫對比


數據庫對比:

1.常用關系型數據庫對比:

數據庫 優點 缺點 使用場景
MySQL數據庫 1.使用C和C++編寫,並使用了多種編譯器進行測試,保證源代碼的可移植性;
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統;
3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;
4.支持多線程,充分利用CPU資源;
5.價格便宜:Mysql是開源的,所以不需要支付額外的費用;
6.MySQL使用標准的SQL數據語言形式;
7.Mysql對PHP有很好的支持,PHP是目前最流行的Web開發語言。
1.比較難學;
2.MySQL也缺乏一些存儲程序的功能;
3.使用缺省的ip端口,但是有時候這些ip也會被一些黑客闖入;
4.使用myisam配置,如果你不慎損壞數據庫,結果可能會導致所有的數據丟失。
廣泛地應用在Internet上的中小型網站中
LAMP(Linux+Apache+Mysql+Php)
mysql的優勢在於免費,如果業務系統數據庫不是極其龐大,可用mysql
Oracle數據庫 1.能在所有主流平台上運行(包括 windows)。完全支持所有的工業標准。采用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支持;
2.安全性方面,性能最高;
3.采用標准的SQL結構化查詢語言;
4.具有豐富的開發工具,覆蓋開發周期的各階段;
5.支持大型數據庫,數據類型支持數字、字符、大至2GB的二進制數據,為數據庫的面向對象存儲提供數據支持;
6.具有字符界面和圖形界面,易於開發;
7.具有數據透明、網絡透明,支持異種網絡、異構數據庫系統。並行處理采用動態數據分片技術;
8.支持客戶機/服務器體系結構及混合的體系結構(集中式、分布式、客戶機/服務器);
9.數據安全保護措施:沒有讀鎖,采取快照SNAP方式完全消除了分布讀寫沖突。自動檢測死鎖和沖突並解決。數據安全級別為C2級(最高級);
10.在中國的銷售份額占50%以上,市場份額高
1.管理維護麻煩一些;
2.數據庫崩潰后恢復很麻煩,因為他把很多東西放在內存里;
3.數據庫連接要慢些,最好用連接池;
4.大對象不好用,vchar2字段太短,不夠用;
5.管理員的工作煩,且經驗非常重要;
6.對硬件的要求很高;
7.價格昂貴。
大部分企事業單位都用oracle,在電信行業占用最大的份額。
SQL Server數據庫 1.安全性和可用性高;
2.超快的性能;
3.企業安全性;
4.快速的數據發現
5.方便易用;
6.高效的數據壓縮功能;
7.集成的開發環境。
1.開放性。只能運行在微軟的windows平台,沒有絲毫的開放性可言;
2.可伸縮性,並行性。並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據卷,伸縮性有限;
3.性能穩定性。SQLServer當用戶連接多時性能會變的很差,並且不夠穩定;
4.使用風險。SQLServer完全重寫的代碼,經歷了長期的測試,不斷延遲,許多功能需時間來證明。並不十分兼容早期產品。使用需要冒一定風險;
5.客戶端支持及應用模式,只支持C/S模式;
6.安全性。Oracle的安全認證獲得最高認證級別的ISO標准認證,而SQL Server並沒有獲得什么安全認證。
主機操作系統為window,主要用於web網站的建設,承載中小型web后台數據。在租賃的虛擬主機中一般會預安裝SQL Server作為數據庫軟件。
PostgreSQL 1.PostgreSQL 的穩定性極強, Innodb 等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步。
2.PG 性能高速度快。任何系統都有它的性能極限,在高並發讀寫,負載逼近極限下,PG的性能指標仍可以維持雙曲線甚至對數曲線,到頂峰之后不再下降。
3.PG 多年來在 GIS 領域處於優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG有大量字典、數組、bitmap 等數據類型。
4.PG 的“無鎖定”特性非常突出,甚至包括 vacuum 這樣的整理數據空間的操作,這個和PGSQL的MVCC實現有關系。PostgreSQL 是唯一支持事務、子查詢、多版本並行控制系統、數據完整性檢查等特性的唯一的一種自由軟件的數據庫管理系統
5.PG對數據量大的文本以及SQL處理較快,可以使用函數和條件索引,這使得PG數據庫的調優非常靈活。
1.關於mvcc 的多版本控制。會生成很多個版本。定期要清理
2.pg的分布式集群。bug很多實用需要謹慎
3.pg數據庫的並發性問題:pg采用搶占資源的方式,如果有一個大的SQL在跑,可能就會阻塞其他的進程,不管其他的進程是小SQL還是大SQL。好在pg有個優先級設置,還能變通一下。
4.pg的數據庫擴容問題:擴容花費的時間很長。
5.pg的segment和mirror同步問題:某個實例有問題,如果是在線恢復,特別慢。 如果把所有的應用停掉則速度還算可以。
OLAP數據庫,適用於電信、金融的分析
SQLlite 1.源代碼不受版權限制,真正的自由,開源和免費.
2.無服務器,不需要一個單獨的服務器進程或者操作的系統
3.一個SQLite 數據庫是存儲在一個單一的跨平台的磁盤文件
4.零配置,因為其本身就是一個文件,不需要安裝或管理,輕松攜帶
5.不需要任何外部的依賴,所有的操作等功能全部都在自身集成.
6.輕量級,SQLite本身是C寫的,體積很小,經常被集成到各種應用程序中.
1.缺乏用戶管理和安全功能
2.只能本地嵌入,無法被遠程的客戶端訪問,需要上層應用來處理這些事情;
3.不適合大數據
4.適合單線程訪問,對多線程高並發的場景不適用;
5.各種數據庫高級特性它都不支持,比如管理工具、分析工具、維護等等;
小型網站、嵌入式設備、數據庫教學、本地應用程序
DB2數據庫 1.能在所有主流平台上運行(包括windows)。最適於海量數據;
2.具有很好的並行性。DB2把數據庫管理擴充到了並行的、多節點的環境;
3.獲得最高認證級別的ISO標准認證;
4.客戶端支持及應用模式;
5.跨平台,多層結構,支持ODBC,JDBC等客戶;
6.操作簡單,同時提供GUI和命令行,在windowsNT和unix下操作相同。
1.在巨型企業得到廣泛的應用,向下兼容性好。風險小。 性能較高適用於數據倉庫和在線事務處理。DB2 超大型數據庫,與ORACLE類似 ,數據倉庫和數據挖掘相當的不錯,特別是集群技術可以使DB2的可擴性能達到極致。

2.常用非關系型數據庫對比:

數據庫 優點 缺點 使用場景
Redis 1、Redis不僅僅只支持簡單的K-V形式的數據存儲,還支持list、set、hash、zset等等集合類數據的存儲;
2、Redis支持實時的數據備份,即使宕機,也可以把數據恢復過來;
3、Redis支持數據的持久化,可以存放在內存memory中的數據直接保存在磁盤上;
數據庫容量受到物理內存的限制,因此不便對海量數據進行高性能讀寫,適用場景局限在數據量較小的高性能操作和運算上; 查找最新的回復、排行問題、緩存、刪除過期數據
MemCache 1、穩定。
2、配置簡單
3、速度快
4、分布式擴展
1.不能持久化存儲
2.存儲數據有限制:1M 【大於1M,認為就行分割】(內存碎片)
3.mm存儲數據只能key-value
4.集群數據沒有復制和同步機制 【崩潰不會影響程序,會從數據庫中取數據】
5.內存回收不能及時 LRU(算法):未使用內存》過期內存》最近最少使用內存 這是惰性刪除
分布式應用、數據庫前段緩存、服務器間數據共享
MongoDB數據庫 1、文檔結構的存儲方式,能夠更便捷的獲取數據
2、內置GridFS,支持大容量的存儲
3、內置Sharding,分片簡單
4、海量數據下,性能優越
5、支持自動故障恢復(復制集)
1.不支持事務操作
2.占用空間過大
3.MongoDB沒有如MySQL那樣成熟的維護工具
4.無法進行關聯表查詢,不適用於關系多的數據
5.復雜聚合操作通過mapreduce創建,速度慢
6.模式自由, 自由靈活的文件存儲格式帶來的數據錯誤
各種應用服務的日志存儲、敏捷開發、地理位置信息存儲、json存儲


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM