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