mysql在大數(shù)據(jù)量情況下,orderby和groupby的效率會(huì)非常的低。從目前的實(shí)踐來看,mongodb是很有希望和很有必要替代orderby和groupby,因其有靈活的數(shù)據(jù)結(jié)構(gòu)模型,可作為一個(gè)可查找和排序、歸類的數(shù)據(jù)中間緩存層,而且效率會(huì)比通常的mysql查詢高很多。
思考MongoDB的使用場景
重要數(shù)據(jù):mysql,一般數(shù)據(jù):mongodb,臨時(shí)數(shù)據(jù):memcache
對(duì)于關(guān)系數(shù)據(jù)表而言,mongodb是提供了一個(gè)更快速的視圖view;而對(duì)于PHP程序而言,mongodb可以作為一個(gè)持久化的數(shù)組來使用,并且這個(gè)持久化的數(shù)組還可以支持排序、條件、限制等功能。
將mongodb代替mysql的部分功能,主要一個(gè)思考點(diǎn)就是:把mongodb當(dāng)作mysql的一個(gè)view(視圖),view是將表數(shù)據(jù)整合成業(yè)務(wù)數(shù)據(jù)的關(guān)鍵。比如說對(duì)原始數(shù)據(jù)進(jìn)行報(bào)表,那么就要先把原始數(shù)據(jù)統(tǒng)計(jì)后生成view,在對(duì)view進(jìn)行查詢和報(bào)表。從這個(gè)意義上,mongodb提供了一個(gè)更快速,更使用的view
PHP中使用MongoDB要注意的
Mongodb等noSQL技術(shù),作為memcache和mysql的一個(gè)中間view是比較好的選擇。而noSQL進(jìn)行持久化是非常不好的事情,除非有SSD硬盤,否則普通硬盤條件下,持久化會(huì)令系統(tǒng)負(fù)擔(dān)極大,并且效率甚至有可能比mysql還要低。
在用 PHP 操作 MongoDB 時(shí),排序字段值需要強(qiáng)制類型。不然排序的時(shí)候會(huì)有問題。 不強(qiáng)制類型時(shí)會(huì) 類似以下形式: 1 10 2 3 解決辦法就是在寫入的時(shí)候 加上 (int)$sort 強(qiáng)制一下類型。
MongoDB遇到“Caught exception: non-utf8 string: ”的異常,這是插入非UTF8編碼文字的時(shí)候就會(huì)拋出
本文出自:億恩科技【www.riomediacenter.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|