天天看點

MongoDB MongoMapper Cucumber 和其他 近一段時間的主幹方向

[color=red]更新[/color]:攢了一份基礎情況的說明

[url=http://hlee.iteye.com/admin/blogs/599988]MongoDB基礎情況簡介[/url]

[color=red]2010.3.3再更新[/color] [url=http://hlee.iteye.com/blog/605762/]MongoDB 和 MongoMapper的示例用法簡介[/url]

終于有段專門的時間回歸Rails,在以後不短的時間裡,主要的方向有兩個:

MongoDB和MongoMapper

Cucumber和Rspec

資料處理上,是從mysql向更适合雲處理的非關系資料庫轉變。選中MongoDB多少和[url=http://robbin.iteye.com/]肉餅老大[/url]的鼓吹有關,當然也有一些機會原因。下面的偷來的。

[quote="肉餅老大"]1、MongoDB

MongoDB是一個介于關系資料庫和非關系資料庫之間的産品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支援的資料結構非常松散,是類似json的bjson格式,是以可以存儲比較複雜的資料類型。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似于面向對象的查詢語言,幾乎可以實作類似關系資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。

Mongo主要解決的是海量資料的通路效率問題,根據官方的文檔,當資料量達到50GB以上的時候,Mongo的資料庫通路速度是MySQL的 10倍以上。Mongo的并發讀寫效率不是特别出色,根據官方提供的性能測試表明,大約每秒可以處理0.5萬-1.5次讀寫請求。對于Mongo的并發讀寫性能,我(robbin)也打算有空的時候好好測試一下。

因為Mongo主要是支援海量資料存儲的,是以Mongo還自帶了一個出色的分布式檔案系統GridFS,可以支援海量的資料存儲,但我也看到有些評論認為GridFS性能不佳,這一點還是有待親自做點測試來驗證了。

最後由于Mongo可以支援複雜的資料結構,而且帶有強大的資料查詢功能,是以非常受到歡迎,很多項目都考慮用MongoDB來替代MySQL來實作不是特别複雜的Web應用,比方說why we migrated from MySQL to MongoDB就是一個真實的從MySQL遷移到MongoDB的案例,由于資料量實在太大,是以遷移到了Mongo上面,資料查詢的速度得到了非常顯著的提升。

MongoDB也有一個ruby的項目MongoMapper,是模仿Merb的DataMapper編寫的MongoDB的接口,使用起來非常簡單,幾乎和DataMapper一模一樣,功能非常強大易用。 [/quote]

關于上面的主題有以下資源:

MongoDB的官方首頁: [url]http://www.mongodb.org/display/DOCS/Home[/url]

MongoDB的一個指南: [url]http://www.mongodb.org/display/DOCS/Ruby+Tutorial[/url]

MongoDB的一個幻燈片: [url]http://www.fuchaoqun.com/2010/01/mongodb-in-action/[/url]

MongoMapper的git官網: . [url]http://github.com/jnunemaker/mongomapper[/url]

MongoMapper的一個例子: [url]http://railstips.org/blog/archives/2009/06/27/mongomapper-the-rad-mongo-wrapper/[/url]

[url=http://hlee.iteye.com]曉夜[/url]([url=http://hlee.iteye.com]夜鳴豬[/url],嘿嘿跟老大學的,以後每篇都加個這個)的第二部分,是加強行為驅動和測試的能力。有關資源如下:

cucumber: [url]http://cukes.info/[/url]

RSpec: [url]http://rspec.info/[/url]

在後繼的有關文章裡,有可能涉及 YSlow ([url]http://developer.yahoo.com/yslow/[/url])

繼續閱讀