|
滿足海量存儲(chǔ)需求和訪問的面向文檔的數(shù)據(jù)庫:MongoDB,CouchDB
MongoDB
Nice, I like it very much.
面向文檔的非關(guān)系數(shù)據(jù)庫主要解決的問題不是高性能的并發(fā)讀寫,而是保證海量數(shù)據(jù)存儲(chǔ)的同時(shí),具有良好的查詢性能。MongoDB是用C++開發(fā)的,而CouchDB則是Erlang開發(fā)的:
1、MongoDB
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似 json的bjson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。
Mongo主要解決的是海量數(shù)據(jù)的訪問效率問題,根據(jù)官方的文檔,當(dāng)數(shù)據(jù)量達(dá)到50GB以上的時(shí)候,Mongo的數(shù)據(jù)庫訪問速度是MySQL的 10倍以上。Mongo的并發(fā)讀寫效率不是特別出色,根據(jù)官方提供的性能測(cè)試表明,大約每秒可以處理0.5萬-1.5次讀寫請(qǐng)求。對(duì)于Mongo的并發(fā)讀寫性能,我(robbin)也打算有空的時(shí)候好好測(cè)試一下。
因?yàn)镸ongo主要是支持海量數(shù)據(jù)存儲(chǔ)的,所以Mongo還自帶了一個(gè)出色的分布式文件系統(tǒng)GridFS,可以支持海量的數(shù)據(jù)存儲(chǔ),但我也看到有些評(píng)論認(rèn)為GridFS性能不佳,這一點(diǎn)還是有待親自做點(diǎn)測(cè)試來驗(yàn)證了。
最后由于Mongo可以支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),而且?guī)в袕?qiáng)大的數(shù)據(jù)查詢功能,因此非常受到歡迎,很多項(xiàng)目都考慮用MongoDB來替代MySQL來實(shí)現(xiàn)不是特別復(fù)雜的Web應(yīng)用,比方說whywe migrated from MySQL toMongoDB就是一個(gè)真實(shí)的從MySQL遷移到MongoDB的案例,由于數(shù)據(jù)量實(shí)在太大,所以遷移到了Mongo上面,數(shù)據(jù)查詢的速度得到了非常顯著的提升。
MongoDB也有一個(gè)ruby的項(xiàng)目MongoMapper,是模仿Merb的DataMapper編寫的MongoDB的接口,使用起來非常簡(jiǎn)單,幾乎和DataMapper一模一樣,功能非常強(qiáng)大易用。
MongoDB語法:
啟動(dòng)服務(wù)
mongod.exe –dbpath F:/DataBase/MongoDB/db/
it知識(shí)庫:MongoDB基本介紹及一些用法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。