mongodb存儲(chǔ)原理 mongodb是怎樣存儲(chǔ)數(shù)據(jù)的?
mongodb是怎樣存儲(chǔ)數(shù)據(jù)的?作為一個(gè)非關(guān)系數(shù)據(jù)庫,mongodb的主要優(yōu)勢是無模式。一般來說,爬蟲數(shù)據(jù)是“臟”的,并且不包含所有被爬蟲數(shù)據(jù)的字段,這非常適合沒有嚴(yán)格模式定義的mongodb。而mo
mongodb是怎樣存儲(chǔ)數(shù)據(jù)的?
作為一個(gè)非關(guān)系數(shù)據(jù)庫,mongodb的主要優(yōu)勢是無模式。一般來說,爬蟲數(shù)據(jù)是“臟”的,并且不包含所有被爬蟲數(shù)據(jù)的字段,這非常適合沒有嚴(yán)格模式定義的mongodb。而mongodb內(nèi)置的分片分布式系統(tǒng)也保證了其可擴(kuò)展性。除了join之外,mongodb的聚合框架可以完全替代SQL語句,實(shí)現(xiàn)非??焖俚慕y(tǒng)計(jì)分析。根據(jù)我的經(jīng)驗(yàn),這對mongodb來說不是什么大問題。如果您需要全局統(tǒng)計(jì),可以使用sharding+內(nèi)置map reduce對其進(jìn)行優(yōu)化。如果需要filter,可以索引(前輩也提到mongodb的查詢速度是MySQL無法比擬的),加入概率不大(不需要規(guī)范化)。總而言之,這主要取決于你做什么。如果它是一個(gè)簡單的原始數(shù)據(jù)存儲(chǔ),它可以直接保存為TXT文件,然后加載到HDFS中。如果是數(shù)據(jù)倉庫設(shè)計(jì),MySQL可以作為輕量級(jí)聚合表載體,作為OLAP的后端數(shù)據(jù)源。無論如何,在這種情況下,我不認(rèn)為MySQL只用于存儲(chǔ)的必要性。