mongodb使用場(chǎng)景 mongodb如何定位?
mongodb如何定位?Mongo數(shù)據(jù)庫(kù)本身介于redis內(nèi)存數(shù)據(jù)庫(kù)和MySQL數(shù)據(jù)庫(kù)之間。以下重點(diǎn)介紹Mongo的優(yōu)勢(shì)。Mongo V redis,1:redis受內(nèi)存限制,不能存儲(chǔ)海量數(shù)據(jù);Mon
mongodb如何定位?
Mongo數(shù)據(jù)庫(kù)本身介于redis內(nèi)存數(shù)據(jù)庫(kù)和MySQL數(shù)據(jù)庫(kù)之間。
以下重點(diǎn)介紹Mongo的優(yōu)勢(shì)。
Mongo V redis,
1:redis受內(nèi)存限制,不能存儲(chǔ)海量數(shù)據(jù);Mongo可以存儲(chǔ)海量數(shù)據(jù)。
2:Redis只支持簡(jiǎn)單的string、hash、list、set和Zset數(shù)據(jù)結(jié)構(gòu),Mongo支持文檔類(lèi)型的數(shù)據(jù)結(jié)構(gòu),可以說(shuō)是JSON字符串。這個(gè)數(shù)據(jù)結(jié)構(gòu)是多么的靈活和方便,我不需要過(guò)多的介紹。
3:redis能提供復(fù)雜的查詢(xún)嗎?蒙哥笑了笑,什么也沒(méi)說(shuō)。
4:redis是否有內(nèi)置的數(shù)據(jù)分析功能(MapReduce)?
讓我們看看Mongo V MySQL
2:Mongo的插入速度比MySQL快。
3:Mongo可以輕松分發(fā)和擴(kuò)展,而無(wú)需停機(jī)或更改應(yīng)用程序。
事實(shí)上,它們各有優(yōu)缺點(diǎn),對(duì)應(yīng)不同的數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景。
我什么時(shí)候需要Mongo?
Mongo實(shí)際上彌補(bǔ)了redis和mysql的不足。在爬蟲(chóng)程序中,個(gè)人經(jīng)常使用Mongo來(lái)保存被爬網(wǎng)的數(shù)據(jù),而redis則保存要爬網(wǎng)的鏈接,并用于網(wǎng)頁(yè)重復(fù)數(shù)據(jù)消除。
mysql優(yōu)化教程?
1. 優(yōu)化SQL語(yǔ)句、索引和表結(jié)構(gòu)。
2. 打開(kāi)查詢(xún)緩存時(shí),查詢(xún)緩存緩存選擇查詢(xún)及其結(jié)果數(shù)據(jù)集。當(dāng)執(zhí)行同一個(gè)select查詢(xún)時(shí),MySQL將直接從內(nèi)存中檢索結(jié)果,這加快了查詢(xún)的執(zhí)行速度,減少了對(duì)數(shù)據(jù)庫(kù)的壓力。執(zhí)行show變量,比如“have”uqueryucache,您可以檢查MySQL查詢(xún)緩存是否打開(kāi)。要打開(kāi)查詢(xún)緩存,只需配置我的.cnf具體如下:
querycacheuuutype=1
querycacheuusize=128M
querycacheulimit=1m
保存后重新啟動(dòng)mysql。
3. 選擇InnoDB存儲(chǔ)引擎。MySQL常用的存儲(chǔ)引擎是MyISAM和InnoDB。它們之間的區(qū)別如下:
MyISAM
查詢(xún)速度快;
支持表級(jí)鎖,在此期間不能對(duì)表執(zhí)行其他操作;
支持全文檢索;
支持?jǐn)?shù)據(jù)壓縮、自復(fù)制、查詢(xún)緩存和數(shù)據(jù)加密;
不支持外鍵;
不支持事務(wù),因此沒(méi)有提交和回滾操作;
不支持群集數(shù)據(jù)庫(kù)。
InnoDB
支持行級(jí)鎖;
支持外鍵和外鍵約束強(qiáng)制執(zhí)行;
支持事務(wù),可以執(zhí)行提交和回滾操作;
支持?jǐn)?shù)據(jù)壓縮、自復(fù)制、查詢(xún)緩存和數(shù)據(jù)加密;
可以在群集環(huán)境中使用,但不完全支持。InnoDB表可以轉(zhuǎn)換為NDB存儲(chǔ)引擎,可以在集群環(huán)境下使用。