2013年4月29日 星期一

MongoDB

MongoDB是document-oriented的database,是NoSQL的一員,由C++撰寫成,由10gen團隊所開發。

MongoDB使用內存對映檔案, 32位元系統上限制大小為2GB的資料 (64-位元要更大的資料)

This MongoDB instance will store its data files in the /var/lib/mongodb and its log files in /var/log/mongodb, and run using the mongodb user account.




{
  _id : ObjectId(...),
  author : 'Rei',
  content : 'content text',
  comments : [ { name : 'Asuka'
                 email : '...',
                 web_site : '...',
                 content : 'comment text'} ]
}
comments 項是內嵌在 post 項中的(作為陣列)。在 MongoDB 中,一個資料項目叫做 Document,一個文檔嵌入另一個文檔(comment 嵌入 post)叫做 Embed,儲存一系列文檔的地方叫做 Collections。順便一提,MongoDB 中也提供類似 SQL 資料庫中的表間關聯,叫做 Reference。



4. MongoDB 另外一些特點

4.1 JSON 文檔式查詢

MongoDB 的查詢語言看起來是這樣的:
> db.users.find( { x : 3, y : "abc" } ).sort({x:1});
這是在 MongoDB 內置的 JavaScript 控制臺上的查詢,表示在名為 users 的 Collections 中查找 x = 3,y = “abc” 的文檔,並且以 x 遞增的順序返回資料。
JSON 文檔式查詢會讓寫慣應用層代碼的開發者眼前一亮,但對於精通 SQL 查詢的關聯資料庫管理員來說就是一個新的挑戰了。
4.2 對分散式的支援

MongoDB 對大型網站的最大吸引力也許來源於其對分散式部署的支持。當今互聯網最流行的資料庫 MySQL 在網站擴大到一定規模之後就會遇到擴展瓶頸,解決方案通常是分表分庫、配置主從資料庫。很多互聯網開拓者前仆後繼的為資料庫擴展性奮鬥,留下了一頁頁的寶貴經驗。


PS:
在 SQL 資料庫中,為表達資料的從屬關係,通常要將表間關係分為 one-to-one,one-to-many,many-to-many 等模式進行設計,這通常會需要很多鏈結表的輔助。



Reference
http://zh.wikipedia.org/wiki/MongoDB
http://calos-tw.blogspot.tw/2010/03/mongodb.html

MongoDB的介紹,
http://atlantischiu.blog.ithome.com.tw/post/3058/110773

NoSQL的出現是否要取代RDBMS?! 選擇MongoDB的原因:
http://atlantischiu.blog.ithome.com.tw/post/3058/110773

http://www.oschina.net/p/mongodb

沒有留言:

張貼留言