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