開源數據庫MySQL
MySQL是壹個開放源碼的小型關聯式數據庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這壹特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。
MySQL為多種編程語言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是采用C和C++編寫的,使用了多種編譯器進行測試,所以,MySQL能夠保證源代碼具有很強的可移植性。這樣的壹款數據庫,自然能夠支持幾乎所有的操作系統,從Unix、Linux到Windows,具體包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多種操作系統。最重要的是,它是壹個可以處理擁有上千萬條記錄的大型數據庫。
與此同時,MySQL也產生了很多分支版本的數據庫也非常值得推薦。
首先是MariaDB,它是壹個采用Maria存儲引擎的MySQL分支版本,是由原來MySQL的作者 Michael Widenius創辦的公司所開發的免費開源的數據庫服務器。與MySQL相比較,MariaDB更強的地方在於它擁有更多的引擎,包括Maria存儲引擎、PBXT存儲引擎、XtraDB存儲引擎、FederatedX存儲引擎,它能夠更快的復制查詢處理、運行的速度更快、更好的功能測試以及支持對Unicode的排序等。
其次是rcona,它為MySQL數據庫服務器進行了改進,在功能和性能上較MySQL有著很顯著的提升。該版本提升了在高負載情況下的InnoDB的性能,同時,它還為DBA提供壹些非常有用的性能診斷工具,並且提供很多參數和命令來控制服務器行為。
第三是Percona Server,它使用了諸如google-mysql-tools、Proven Scaling和 Open Query對MySQL進行改造。並且,它只包含MySQL的服務器版,並沒有提供相應對 MySQL的Connector和GUI工具進行改進。
非關系型數據庫NoSQL
從NoSQL的字面上理解,NoSQL就是Not Only SQL,被業界認為是壹項全新的數據庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於目前鋪天蓋地的關系型數據庫運用,這壹概念無疑是壹種全新的思維的註入。
當然,NoSQL也是隨著互聯網Web2.0網站的興起才能取得長足的進步。關鍵的需求在於,傳統的關系數據庫在應付Web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站顯得力不從心,暴露了很多難以克服的問題,而非關系型的數據庫則由於其本身的特點得到了非常迅速的發展。
首先推薦的是Oracle NoSQL Database,這是壹個社區版。Oracle的這個NoSQL Database, 是在10月4號的甲骨文全球大全上發布的Big Data Appliance的其中壹個組件,Big Data Appliance是壹個集成了Hadoop、NoSQL Database、Oracle數據庫Hadoop適配器、Oracle數據庫Hadoop裝載器及R語言的系統。
其次推薦的是Membase。Membase是NoSQL家族的壹個新的重量級的成員。Membase是開源項目,源代碼采用了Apache2.0的使用許可。該項目托管在GitHub.Source tarballs上,目前可以下載beta版本的Linux二進制包。該產品主要是由North Scale的memcached核心團隊成員開發完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線遊戲和社區網絡空間的供應商。
並且,Membase容易安裝、操作,可以從單節點方便的擴展到集群,而且為memcached(有線協議的兼容性)實現了即插即用功能,在應用方面為開 發者和經營者提供了壹個比較低的門檻。做為緩存解決方案,Memcached已經在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase服務器的前端。通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程接口,包括可配置 的告警信息。
Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統壹的節點進行復制。 另外,對存儲的數據進行再分配仍然是必要的。
第三推薦的是Hibari。Hibari在日語中意思為?雲雀?,它是壹個專為高可靠性和大數據存儲的數據庫引擎,可用於雲計算環境中,例如 webmail、SNS和其他要求T/P級數據存儲的環境中。同時,Hibari也支持Java,C/C++,Python,Ruby和Erlang語言的客戶端。
第四推薦的是memcachedb。這是壹個由新浪網的開發人員開放出來的開源項目,給memcached分布式緩存服務器添加了Berkeley DB的持久化存儲機制和異步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合於需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。
第五推薦的是Leveldb。這是壹個Google實現的非常高效的kv數據庫,目前的版本1.2能夠支持billion級別的數據量了。 在這個數量級別下還有著非常高的性能,主要歸功於它的良好的設計,特別是LSM算法。LevelDB是單進程的服務,性能非常之高,在壹臺4個Q6600的CPU機器上,每秒鐘寫數據超過40w,而隨機讀的性能每秒鐘超過10w。
XML數據庫的優勢
XML數據庫是壹種支持對XML格式文檔進行存儲和查詢等操作的數據管理系統。在系統中,開發人員可以對數據庫中的XML文檔進行查詢、導出和指定格式的序列化。目前XML數據庫有三種類型:XMLEnabledDatabase(XEDB),即能處理XML的數據庫;NativeXMLDatabase(NXD),即純XML數據庫;HybridXMLDatabase(HXD),即混合XML數據庫。
關系數據庫中的第壹代XML支持是切分(或分解)文檔,以適應關系表格或將文檔原封不動地存儲為字符或二進制大對象(CLOB 或 BLOB)。這兩個方法中的任壹種都嘗試將XML模型強制轉換成關系模型。然而,這兩種方法在功能和性能上都有很大的局限性。混合型模型將XML存儲在類似於DOM的模型中。XML數據被格式化為緩沖數據頁,以便快速導航和執行查詢以及簡化索引編制。
在這裏,首要要推薦的XML數據庫是Sedna。它號稱是壹款原生態的XML數據庫,提供了全功能的核心數據庫服務,包括持久化存儲、ACID事務、索引、安全、熱備、UTF8等。實現了 W3C XQuery 規範,支持全文搜索以及節點級別的更新操作。
第二款XML數據庫是BaseX。這款數據庫用來存儲緊縮的XML數據,提供了高效的 XPath和XQuery的實現,同時,它還提供壹個前端操作界面。
第三款推薦的是XMLDB。這款數據庫使用了關系型數據庫來存儲任意的XML文檔,因為所采用的存儲機制,所以文檔的搜索速度特別快,同時執行XSL轉換也相當快。XMLDB同時還提供了壹個PHP的模塊,可以應用在Web應用中。
第四塊推薦的是X-Hive/DB。它是壹個為需要高級XML數據處理和存儲功能的軟件開發者設計的強大的專屬XML數據庫。X-Hive/DB Java API包含存儲、查詢、檢索、轉換和發表XML數據的方法。
與傳統關系型數據庫相比,XML數據庫具有以下優勢:第壹,XML數據庫能夠對半結構化數據進行有效的存取和管理。如網頁內容就是壹種半結構化數據,而傳統的關系數據庫對於類似網頁內容這類半結構化數據無法進行有效的管理。第二,提供對標簽和路徑的操作。傳統數據庫語言允許對數據元素的值進行操作,不能對元素名稱操作,半結構化數據庫提供了對標簽名稱的操作,還包括了對路徑的操作。第三,當數據本身具有層次特征時,由於XML數據格式能夠清晰表達數據的層次特征,因此XML數據庫便於對層次化的數據進行操作。XML數據庫適合管理復雜數據結構的數據集,如果己經以XML格式存儲信息,則XML數據庫利於文檔存儲和檢索;可以用方便實用的方式檢索文檔,並能夠提供高質量的全文搜索引擎。另外XML數據庫能夠存儲和查詢異種的文檔結構,提供對異種信息存取的支持。
bitsCN.com