• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            幾乎每個Web開發人員都有自己喜歡的數據庫,或自己最熟悉的數據庫,但最常見的無外乎以下幾種:

            MySQL

            PostgreSQL

            MSSQL Server

            SQLite

            MS Access

            或是更簡單的XML,文本文件等。這些數據庫有優秀的文檔,背后有強大的社區支持,大部分流行的CMS都使用了其中之一或多個,它們都易于使用,大多數托管服務供應商都提供了相應的產品,因此它們的使用量很多,名氣也很大。但除了這些主流的數據庫外,還有很多其它非主流數據庫存在,其中有一些也開始受到人們的高度重視,下面我們就一起來看看吧,注意本文只介紹開源數據庫,說不定在下一個項目中,你就有嘗試它們的沖動。

            1、MongoDB

            MongoDB是一款開源,高性能,可擴展,無模式,面向文檔(與JSON類似的數據模式)的數據庫,它為時下最流行的編程語言提供了驅動,如PHP,Python,Perl,Ruby,JavaScript,C++等,支持全文索引,自動分片,跨LAN或WAN擴展,采用Key/Value方式存儲數據。MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用。世界上最大的單詞收錄網站Wordnik就從MySQL轉向了MongoDB。

            2、Hypertable

            Hypertable是一款高性能分布式數據存儲系統,旨在為應用程序提供最好的性能,可擴展性和可靠性,它建立在Google的BigTable之上,主要面向大規模數據集應用,其目標是要成為世界上最好的大規模并發高性能數據庫平臺。百度目前也使用了Hypertable,也是它的贊助商。

            3、Apache CouchDB

            Apache CouchDB是一款面向文檔的數據庫,可以使用JavaScript通過MapReduce方法進行查詢和索引,它提供了一個RESTful JSON API,因此可以在任何環境中通過HTTP訪問,CouchDB內置了Web管理控制臺,支持通過瀏覽器管理數據庫。CouchDB使用Erlang編寫,Erlang是一種健壯的函數式編程語言,非常適合于構建并發的分布式系統,Erlang的設計非常靈活,其可伸縮性與可擴展性都非常棒。

            4、Neo4j

            Neo4j是一個嵌入式,基于磁盤的,支持完整事務的Java持久化引擎,它在圖像中而不是表中存儲數據。Neo4j提供了大規模可擴展性,在一臺機器上可以處理數十億節點/關系/屬性的圖像,可以擴展到多臺機器并行運行。相對于關系數據庫來說,圖形數據庫善于處理大量復雜、互連接、低結構化的數據,這些數據變化迅速,需要頻繁的查詢——在關系數據庫中,這些查詢會導致大量的表連接,因此會產生性能上的問題。Neo4j重點解決了擁有大量連接的傳統RDBMS在查詢時出現的性能衰退問題。通過圍繞圖形進行數據建模,Neo4j會以相同的速度遍歷節點與邊,其遍歷速度與構成圖形的數據量沒有任何關系。此外,Neo4j還提供了非常快的圖形算法、推薦系統和OLAP風格的分析,而這一切在目前的RDBMS系統中都是無法實現的。

            5、Riak

            Riak是一款非常適合于Web應用程序的數據庫,它提供了去中心化的Key/Value存儲,靈活的map/reduce引擎和友好的HTTP/JSON查詢接口。它是一個真正的容錯系統,不會出現單點故障,在Riak世界中,沒有哪臺機器是特殊的或屬核心服務器,它們都是對等的。

            6、Oracle Berkeley DB

            Oracle Berkeley DB是一系列開源的嵌入式數據庫,使開發人員能夠將一個快速、可伸縮、具有工業級別的可靠性和可用性的事務處理數據庫引擎結合進他們的應用程序中。Berkeley DB最先由伯克利加州大學為了移除受到AT&T限制的程式碼,從BSD 4.3到4.4時所改寫的軟件。Berkeley DB運行在大多數的操作系統中,例如大多數的UNIX系統, 和windows系統,以及實時操作系統。

            7、Apache Cassandra

            Cassandra是一款高可擴展性第二代分布式數據庫,屬于混合型的非關系的數據庫,類似于Google的BigTable,支持的數據結構非常松散,類似于JSON的BJSON格式,因此可以存儲比較復雜的數據類型。Cassandra最初由Facebook開發,后轉變成了開源項目。Cassandra的主要特點就是它不是一個數據庫,而是由一堆數據庫節點共同構成的一個分布式網絡服務,對Cassandra 的一個寫操作,會被復制到其他節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對于一個Cassandra群集來說,擴展性能是比較簡單的事情,只管在群集里面添加節點就可以了。Facebook,Digg,Twitter和Cisco等大型網站都使用了Cassandra。

            8、Memcached

            Memcached是開源的分布式cache系統,現在很多的大型web應用程序包括facebook,youtube,wikipedia,yahoo等等都在使用memcached來支持他們每天數億級的頁面訪問。通過把cache層與他們的web架構集成,他們的應用程序在提高了性能的同時,還大大降低了數據庫的負載。

            Memcached處理的原子是每一個key/value對,key會通過一個hash算法轉化成hash-key,便于查找、對比以及做到盡可能的散列。同時,memcached用的是一個二級散列,通過一張大hash表來維護。

            9、Firebird

            Firebird是一個關系數據庫,可以運行在Linux,Windows和各種Unix平臺上,Firebird相對MySQL和PostgreSQL來說比較小,這也使其可以稱得上是理想的嵌入式數據庫,可用于與其它應用程序服務器和應用程序捆綁。Firebird具有大部分成熟數據庫所具有的功能,比如支持存儲過程、SQL兼容等。

            10、Redis

            Redis是一款快速的Key/Value數據庫引擎,它在保持鍵值數據庫簡單快捷特點的同時,又吸收了部分關系數據庫的優點,從而使它的位置處于關系數據庫和鍵值數據庫之間。Redis不僅能保存Strings類型的數據,還能保存Lists類型(有序)和Sets類型(無序)的數據,而且還能完成排序(SORT)等高級功能,在實現INCR,SETNX等功能的時候,保證了其操作的原子性,除此以外,還支持主從復制等功能。Redis使用C語言編寫,可以想memcached那樣使用,放在傳統數據庫的前端,它支持許多編程語言,受到許多流行的項目使用,如GitHub和Engine Yard,有一個用PHP編寫的客戶端叫做Rediska,專門來管理Redis數據庫。

            11、HBase

            HBase是一個分布式,面向列存儲的數據庫引擎,也可以叫做Hadoop數據庫,因為它是Hadoop的子項目,HBase的目標是托管數十億行,數百萬列的大表,它提供了一個REST風格的Web服務器網關,支持XML,Protobuf和二進制數據編碼選項。

            12、Keyspace

            Keyspace 是一家叫做 Scalien 的創業公司開發的高可靠 key/value 存儲系統,Keyspace 強調的技術點是高可靠性,有以下一些特點:

            Key/Value存儲:一個 key/value 數據存儲系統,只支持一些基本操作,如:SET(key, value) 和 GET(key) 等;

            分布式:多臺機器(nodes)同時存儲數據和狀態,彼此交換消息來保持數據一致,可視為一個完整的存儲系統。為了更可靠,Keyspace 推薦使用奇數個 nodes,比如:3,5,7等;

            數據一致:所有機器上的數據都是同步更新的、不用擔心得到不一致的結果,Keyspace 使用著名的 Paxos 分布式算法;

            冗余:所有機器(nodes)保存相同的數據,整個系統的存儲能力取決于單臺機器(node)的能力;

            容錯:如果有少數 nodes 出錯,比如重啟、當機、斷網、網絡丟包等各種 fault/fail 都不影響整個系統的運行;

            高可靠性:容錯、冗余等保證了 Keyspace 的可靠性。

            13、4store

            4store是一個容納RDF數據的數據庫存儲和查詢引擎,它使用ANSI C99編寫,可在類Unix系統上運行,提供一個高性能,可擴展和穩定的平臺。4store專門為無共享集群進行優化,最大可支持32節點集群,導入性能最大可以達到120kT/s,它的查詢性能也相當出眾。

            14、MariaDB

            MariaDB是一個向后兼容的,旨在替換MySQL數據庫的MySQL分支,它包括所有主要的開源存儲引擎,另外也開發了屬于自己的Maria存儲引擎。MariaDB是由原來 MySQL 的作者 Michael Widenius 創辦的公司所開發的免費開源數據庫服務器,與 MySQL 相比較,MariaDB 更強的地方在于:

            Maria 存儲引擎

            PBXT 存儲引擎

            XtraDB 存儲引擎

            FederatedX 存儲引擎

            更快的復制查詢處理

            線程池

            更少的警告和bug

            運行速度更快

            更多的 Extensions (More index parts, new startup options etc)

            更好的功能測試

            數據表消除

            慢查詢日志的擴展統計

            支持對 Unicode 的排序

            15、Drizzle

            Drizzle是從MySQL衍生出來的一個數據庫,但它的目的不是要取代MySQL,它的宗旨是構建一個“更精練、更輕量、更快速”的MySQL版本,它的擴展性和易用性與MySQL相當,但為了提高性能和擴展性,它從原來的核心系統里移除了部分功能。Drizzle是一種為云和網絡程序進行了特別優化的數據庫,它是為在現代多CPU/多核架構上實現大規模并發而設計的。

            16、HyperSQL

            HyperSQL是用Java編寫的一款SQL關系數據庫引擎,它的核心完全是多線程的,支持雙向鎖和MVCC(多版本并發控制),幾乎完整支持ANSI-92 SQL,支持常見數據類型,最新版本增加了對BLOB和CLOB數據的支持,最高支持達64T的數據量。同時,HyperSQL也是一個不錯的嵌入式數據庫。

            17、MonetDB

            MonetDB是一個高性能數據庫引擎,主要用在數據挖掘,OLAP,GIS,XML Query,文本和多媒體檢索等領域。MonetDB對DBMS的各個層都進行創新設計,如基于垂直分片的存儲層,為現代CPU優化的查詢執行架構,自動和自助調整索引,運行時查詢優化,以及模塊化的軟件架構。MonetDB/SQL是MonetDB提供的關系數據庫解決方案,MonetDB/XQuery是XML數據庫解決方案,MonetDB Server是MonetDB的多模型數據庫服務器。

            18、Persevere

            Persevere 是針對Javascript設計的基于REST的JSON數據庫,分布式計算,持久對象映射的框架,提供獨立的web服務器,主要用于設計富客戶端應用,可以用在任何框架和客戶端上。Persevere Server是一個基于Java/Rhino的對象存儲引擎,在交互式的客戶端JavaScript環境中提供持久性的JSON數據格式。

            19、eXist-db

            eXist-db是使用XML技術構建的數據庫存儲引擎,它根據XML數據模型存儲XML數據,提供高效的,基于索引的XQuery查詢。eXist-db支持許多Web技術標準,使得它非常適合Web應用程序開發:

            XQuery 1.0 / XPath 2.0 / XSLT 1.0 (使用pache Xalan)或XSLT 2.0

            HTTP接口:REST,WebDAV,SOAP,XMLRPC,Atom發布協議

            XML數據庫規范:XMLDB,Xupdate,XQuery更新擴展

            最新的1.4版本還增加了基于Apache Lucene的全文索引,輕量級URL重寫和MVC框架,以及對XProc的支持。eXist-db與XQuery標準高度兼容(目前XQTS的得分是99.4%)。

            20、Gladius

            Gladius是用純PHP編寫的平面文件數據庫引擎,它的SQL語法與SQL92的一個子集兼容,它捆綁了一個輕量級的adoDB驅動。

            21、CloudStore

            CloudStore(以前叫做Kosmos文件系統)是一個開源的高性能分布式文件系統,它是用C++編寫的,CloudStore可以和Hadoop以及Hypertable集成,這樣就允許應用程序構建在那些系統上,而底層數據存儲無縫地使用CloudStore。CloudStore支持Linux和Solaris,主要用來存儲Web日志和Web爬行數據。

            22、OpenQM

            OpenQM是唯一一款同時有商業支持和免費的開源多值數據庫,基于GPL協議發布,多值數據庫對NoSQL運動起到了推動作用,它自身也因速度快,體積小,比關系數據庫便宜而很快得到了認可。名稱OpenQM中的Open表示開源版本,QM表示商業閉源QM數據庫。商業版本支持Windows,Linux(RedHat,Fedora,Debian,Ubuntu),FreeBSD,Mac OS X和Windows Mobile,其列表價格還不到其它多值產品的1/5,商業版本還包括一個GUI管理界面和終端模擬器,開源版本僅包括核心多值數據庫引擎,主要是為開發人員準備的。

            23、ScarletDME

            ScarletDME也是一個開源多值數據庫,它是OpenQM的社區分支版,最初由Ladybridge開發,這個項目創立于2008年11月28日,它既在獨立開發自己的功能,也在為OpenQM貢獻代碼。這個項目最初的名字叫做Ladybridges GPL OpenQM,現在正式改為ScarletDME,其中的DME是Data Management Environment(數據管理環境)的首字母縮寫。

            24、SmallSQL

            SmallSQL是一個100%純Java編寫的輕量級數據庫,一般用于嵌入式領域,兼容SQL 99標準,支持JDBC 3.0 API,定位于高端Java桌面SQL數據庫。支持所有能運行Java的平臺,可直接嵌入到應用程序中。不過它也有一些不足,如沒有網絡接口,必須安裝Java運行時,同一時間不能在多個應用程序之間共享數據庫,沒有用戶管理。

            25、LucidDB

            LucidDB是唯一一款專注于數據倉庫和商務智能的開源RDBMS,它使用了列存儲架構,支持位圖索引,哈希連接/聚合和頁面級多版本,大部分數據庫最初都注重事務處理能力,而分析功能都是后來才加上去的。相反,LucidDB中的所有組件從一開始就是為滿足靈活的需求,高性能數據集成和大規模數據查詢而設計的,此外,其架構設計徹底從用戶出發,操作簡單,完全無需DBA。

            LucidDB對硬件要求也極低,即使不搭建集群環境,在單一的Linux或Windows服務器上也能獲得極好的性能。最新版本還加入了對Mac OS X和Windows 64位的支持,官方網站上的文檔和教程也非常豐富,非常值得你體驗一下。

            26、HyperGraphDB

            HyperGraphDB是一種通用的,可擴展的,可移植的,分布式,嵌入式和開源數據存儲機制,它是一個圖形數據庫,專門為人工智能和語義Web項目而設計,它也可用于任意規模的嵌入式面向對象的數據庫。正如其名,HyperGraphDB是用來存儲超圖的,但它也屬于一般圖形數據庫家族,作為一個圖形數據庫,它不施加任何限制,相比其他圖形數據庫它的功能更豐富。

            HyperGraphDB非常穩定,已經應用在多個生產環境,包括一個搜索引擎和Seco scripting IDE。它支持*nix和Windows平臺,需要Java 5+。

            27、InfoGrid

            InfoGrid是一個互聯網圖形數據庫,它提供了許多額外的組件,使得在圖像基礎上開發RESTful Web應用程序變得更加容易。InfoGrid是開源的,包括一系列項目:

            InfoGrid圖形數據庫項目 – InfoGrid的心臟GraphDatabase,可以獨立使用,也可以附加到其它InfoGrid項目。

            InfoGrid圖形數據庫網格項目 – 在GraphDatabase基礎上增加了復制協議,因此多個分布式GraphDatabase就可以在一個非常大的圖像管理環境中協作。

            InfoGrid存儲項目 –象SQL數據庫和分布式NoSQL哈希表那樣,為存儲技術提供一個抽象的通用接口,這樣InfoGrid GraphDatabase就可以使用任何存儲技術持久化數據。

            InfoGrid用戶接口項目 – 將GraphDatabase中的內容以REST風格映射成瀏覽器可訪問的URL。

            InfoGrid輕量級身份識別項目 – 實現以用戶為中心的身份識別技術,如LID和OpenID。

            InfoGrid模型庫項目 – 定義一個可復用對象模型庫,作為InfoGrid應用程序的模式使用。

            InfoGrid Probe項目 – 實現Probe框架,它允許開發人員將任何互聯網上的數據源當作一個圖像對象看待。

            InfoGrid Utilities項目 – 收集InfoGrid使用的常見對象框架和實用代碼。

            28、Apache Derby

            Apache Derby是Apache DB的子項目,它完全用Java編寫,是一個開源關系數據庫,它的體積非常小,基礎引擎加上JDBC驅動只有2.6MB,它支持SQL標準,它提供了一個嵌入式JDBC驅動,因此可以嵌入到任何基于Java的應用程序中,Derby也支持常見的客戶端/服務器模式,它也易于安裝和使用。

            29、hamsterdb

            Hamsterdb是一個輕量級嵌入式NoSQL Key/Value存儲引擎,它已經有5年歷史,現在它的開發重點放在易用性,高性能,穩定性和可擴展性上。Hamsterdb支持事務(同一時間只能處理一個事務),支持內存數據庫,支持基于HTTP服務器的嵌入式遠程數據庫,支持日志/恢復,AES加密,基于zlib的壓縮,支持C++,Python,.NET和Java編程語言。

            30、H2 Database

            H2 Database是一個開源的Java數據庫,它的速度很快,包括JDBC API,支持嵌入式和服務器模式,內存數據庫,提供了一個基于瀏覽器的控制臺程序,它的體積也非常小,只有一個大小約1MB的jar文件,它還支持ODBC驅動和全文搜索。

            31、EyeDB

            EyeDB是一款基于ODMG 3規范的面向對象數據庫管理系統,為C++和Java提供了編程接口,它功能非常強大,并且成熟,穩定和安全,實際上,它起源于1992年的Genome View項目,1994年又進行了重寫,廣泛用于生物信息項目。

            32、txtSQL

            txtSQL是一個面向對象的平面文件數據庫管理系統,它使用PHP編寫,支持對普通文本文件的操作,雖然是一個文本數據庫,但同樣支持SQL的一個子集,并且執行效率非常高,txtSQL使用文件系統的方法與MySQL的表和數據庫原理類似,它有一個類似于phpMyAdmin管理界面。

            33、db4o

            db4o是一個面向對象的開源數據庫,允許Java和.NET開發人員用一行代碼存儲和檢索任何應用程序對象,無需預定義或維護一個獨立的,僵化的數據模型,因為模型現在是由db4o根據需要自動創建和更新的。db4o成功的秘密是因為它的易用性,它原生為Java和.NET設計,存儲數據對象的方法直接在應用程序中定義,因此db4o很容易集成到應用程序中,由于只需要一行代碼,因此執行效率非常高。

            34、Tokyo Cabinet

            Tokyo Cabinet是一個Kay/Value型數據庫,每個Key和Value的長度都可以不同,Kay和Value既可以是二進制數據,也可以是字符串,無數據表和數據類型的概念,記錄是以哈希表、B+樹和固定長度數組形式組織的。Tokyo Cabinet具有以下優點:

            空間利用率高 – 數據文件尺寸更小;

            執行效率高 – 更快的處理速度;

            并發性能好 – 在多線程環境性能更好;

            改善的可用性 – 簡化的API;

            改善的可靠性 – 即使在發生災難的情況下,數據文件也不會損壞;

            支持64位架構 – 支持海量的存儲空間和巨型數據庫文件。

            Tokyo Cabinet是用C語言編寫的,為C,Perl,Ruby,Java和Lua提供了API。

            35、Voldemort項目

            Voldemort是一個分布式Key/Value存儲系統,它具有以下特點:

            數據自動在多個服務器之間復制;

            數據自動分區,因此每個服務器只包括整體數據的一個子集;

            服務器故障處理是透明的;

            支持插入式序列化,允許豐富的Key和Value類型,包括列表和元組,也可以集成常見的序列化框架,如Protocol Buffers,Thrift,Avro和Java Serialization

            數據項支持版本化,即使在故障情況下,數據完整性也可以得到保障;

            每個節點都是獨立的,無需其他節點協調,因此也沒有中央節點;

            單節點性能優秀:根據機器配置、網絡、磁盤系統和數據復制因素的不同,每秒可以執行10-20k操作;

            支持地理分散式部署。

            LinkedIn目前就使用Voldemort解決了高可伸縮性存儲問題。

            不知道你是否一口氣看完本文,我想你也一定會驚訝于這么多開源數據庫吧,事實上,本文也尚未完全羅列,歡迎你的補充。

            久久九九精品99国产精品| 99久久亚洲综合精品成人| 久久这里有精品| 亚洲午夜久久久影院| 人妻无码久久一区二区三区免费| 亚洲AV无码久久精品狠狠爱浪潮| 久久人人妻人人爽人人爽| 91性高湖久久久久| 久久精品国产精品亚洲精品| 1000部精品久久久久久久久| 国产精品成人久久久久三级午夜电影| 久久久久久国产a免费观看不卡| A级毛片无码久久精品免费| 99热都是精品久久久久久| 亚洲国产精品无码久久98| 久久黄视频| 久久国产精品99精品国产987| 亚洲AⅤ优女AV综合久久久| 丁香五月网久久综合| 亚洲欧美日韩久久精品第一区| 91精品国产综合久久香蕉| 久久亚洲精品国产精品| 久久婷婷五月综合97色直播| 伊人热人久久中文字幕| 久久久无码一区二区三区| 精品伊人久久久| 无码八A片人妻少妇久久| 99久久亚洲综合精品网站| AV色综合久久天堂AV色综合在| 久久99这里只有精品国产| 蜜桃麻豆www久久国产精品| 国产AⅤ精品一区二区三区久久| 99久久99久久久精品齐齐| 久久久久久夜精品精品免费啦| 精品综合久久久久久98| 精品国产乱码久久久久软件| 久久久久久久久66精品片| 久久久噜噜噜久久中文字幕色伊伊| 久久www免费人成精品香蕉| 欧美色综合久久久久久 | 亚洲AV无码久久|