mongodb優(yōu)勢與缺點 談?wù)刴ongodb,mysql的區(qū)別和具體應(yīng)用場景?
談?wù)刴ongodb,mysql的區(qū)別和具體應(yīng)用場景?看看官方文件。練習編程示例??纯丛创a。一般互聯(lián)網(wǎng)公司使用mysql、redis、mongodb作為存儲層,Hadoop、spark進行大數(shù)據(jù)分析。
談?wù)刴ongodb,mysql的區(qū)別和具體應(yīng)用場景?
看看官方文件。
練習編程示例。
看看源代碼。
一般互聯(lián)網(wǎng)公司使用mysql、redis、mongodb作為存儲層,Hadoop、spark進行大數(shù)據(jù)分析。
MySQL適用于結(jié)構(gòu)化數(shù)據(jù),類似于excel,它是嚴格定義的。它用于數(shù)據(jù)量,其速度一般支持事務(wù)處理。
Redis適用于緩存內(nèi)存對象,如緩存隊列。它用于事務(wù)處理的數(shù)據(jù)量小、速度快、并發(fā)性高。
Mongodb,適用于半結(jié)構(gòu)化數(shù)據(jù),如文本信息,適用于數(shù)據(jù)量大、速度快、不支持事務(wù)處理的場合。
Hadoop是一個生態(tài)系統(tǒng),包含許多用于大數(shù)據(jù)分析的組件,適用于以后的大數(shù)據(jù)分析任務(wù)。
Spark類似于Hadoop,它傾向于內(nèi)存計算和流計算。適用于實時和半實時的大數(shù)據(jù)分析任務(wù)。
移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)使數(shù)據(jù)呈指數(shù)增長。NoSQL大數(shù)據(jù)出現(xiàn)后,數(shù)據(jù)存儲領(lǐng)域發(fā)展迅速。發(fā)展方向似乎是大數(shù)據(jù)、內(nèi)存計算、分布式框架和平臺。有許多新的方法,如apacheignite,它適合于內(nèi)存計算,并集成了許多功能模塊。阿帕奇風暴,火花和弗林克也有自己的特點。
一般來說,TB和GB級別的數(shù)據(jù)存儲不能達到Pb級別。Mongodb和MySQL就足夠了。Hadoop和spark是航空母艦。它們通常用于大規(guī)模的應(yīng)用場景,主要用于后期分析和統(tǒng)計,如電子商務(wù)的推薦系統(tǒng)分析系統(tǒng)。
聰明的戰(zhàn)士總是選擇正確的武器。有必要分析業(yè)務(wù)特點和未來業(yè)務(wù)發(fā)展需要,決定采用何種數(shù)據(jù)存儲策略或混合使用。
mongodb如何定位?
Mongo數(shù)據(jù)庫本身介于redis內(nèi)存數(shù)據(jù)庫和MySQL數(shù)據(jù)庫之間。
以下重點介紹Mongo的優(yōu)勢。
Mongo V redis,
1:redis受內(nèi)存限制,不能存儲海量數(shù)據(jù);Mongo可以存儲海量數(shù)據(jù)。
2:Redis只支持簡單的string、hash、list、set和Zset數(shù)據(jù)結(jié)構(gòu),Mongo支持文檔類型的數(shù)據(jù)結(jié)構(gòu),可以說是JSON字符串。這個數(shù)據(jù)結(jié)構(gòu)是多么的靈活和方便,我不需要過多的介紹。
3:redis能提供復(fù)雜的查詢嗎?蒙哥笑了笑,什么也沒說。
4:redis是否有內(nèi)置的數(shù)據(jù)分析功能(MapReduce)?
讓我們看看Mongo V MySQL
2:Mongo的插入速度比MySQL快。
3:Mongo可以輕松分發(fā)和擴展,而無需停機或更改應(yīng)用程序。
事實上,它們各有優(yōu)缺點,對應(yīng)不同的數(shù)據(jù)庫應(yīng)用場景。
我什么時候需要Mongo?
Mongo實際上彌補了redis和mysql的不足。在爬蟲程序中,個人經(jīng)常使用Mongo來保存被爬網(wǎng)的數(shù)據(jù),而redis則保存要爬網(wǎng)的鏈接,并用于網(wǎng)頁重復(fù)數(shù)據(jù)消除。