国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

nosql - 如何正確的使用mongodb
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-05-02 09:19:43
0
4
1059

在日常開發(fā)中,我一般用mysql數(shù)據(jù)儲(chǔ)存數(shù)據(jù),memcache儲(chǔ)存緩存,但是我不知道如mongodb這一類的nosql數(shù)據(jù)庫到底相比mysql這種數(shù)據(jù)庫有什麼優(yōu)勢,在什麼場景下我改選擇mongodb這種資料庫?希望各位能用淺顯的語言幫忙解釋下。

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證0級(jí)講師

全部回覆(4)
劉奇

舉個(gè)例子:

mysql:一個(gè)表格中有5個(gè)字段,你程式已經(jīng)寫好了,然後這邊要加兩個(gè)字段,於是你先去資料庫修改表格結(jié)構(gòu),增加字段,然後回到程序,修改sql程式碼。

mongodb : 一個(gè)物件有5個(gè)屬性,你程式已經(jīng)寫好了,然後這邊要加兩個(gè)屬性(欄位),你直接在程式裡加上,就OK了。

關(guān)係型資料庫,一筆記錄是一行,一個(gè)欄位是一列,資料處在行與列的交叉處。多行多列必須遵循相同的二維結(jié)構(gòu)。

非關(guān)係型資料庫,屬性只屬於物件。對(duì)象之間是獨(dú)立的。

大家講道理

長線業(yè)務(wù)用mysql+memcache組合,統(tǒng)計(jì)日誌類業(yè)務(wù)或PM拍腦門硬上的臨時(shí)事務(wù)用mongodb+redis的組合。
mongodb的優(yōu)點(diǎn)是靈活,劣勢也是靈活,穩(wěn)定性不如mysql

漂亮男人

相對(duì)於傳統(tǒng)的關(guān)係型資料庫,MongoDB是非關(guān)係型資料庫的代表之一。要知道什麼時(shí)候應(yīng)該使用MongoDB,首先應(yīng)該知道它具有一些什麼特性,能做什麼和不能做什麼,然後根據(jù)具體情況決定是否使用。建議先閱讀一下官方文件中的介紹部分,其中列舉的是MongoDB最關(guān)鍵的特性,而其他所有功能幾乎都是圍繞著這些特性。這些特性大部分時(shí)候也是決定是否要採用MongoDB的關(guān)鍵因素。
這裡有一篇文章也簡單粗暴地介紹瞭如何選擇的問題。
然而,隨著技術(shù)發(fā)展,所謂「關(guān)係型」和「非關(guān)係型」的界線已經(jīng)越來越模糊,一方面Postgre、MySQL這些傳統(tǒng)RDBMS開始支援JSON這樣的非關(guān)係模型,另一方面MongoDB也開始支持JOIN,甚至將來會(huì)支援事務(wù)。既然界線變得模糊,那麼什麼時(shí)候應(yīng)該使用哪種技術(shù)也就不能一概而論了,比較結(jié)果往往是既能用這個(gè),又能用那個(gè)。但你確實(shí)可以比較如果在專案中使用了某種技術(shù),會(huì)得到什麼,失去什麼,然後權(quán)衡得到的部分是否能彌補(bǔ)損失的部分,最終決定是否採用這種技術(shù)。

左手右手慢動(dòng)作

資料的結(jié)構(gòu)不一定的時(shí)候用mongodb最好,例如你sql資料庫中要先定義所有欄位的類型,名字,長度什麼的,這就缺少了彈性,mongodb在某個(gè)欄位資料不存在的時(shí)候就當(dāng)他沒有。

舉個(gè)例子,假設(shè)我們的伺服器要在資料庫裡保存系統(tǒng)發(fā)生的事件event。某某用戶做了某某事,有時(shí)候你要紀(jì)錄他發(fā)送的post的原始的body內(nèi)容以備查詢,有的時(shí)候又不要,那麼在不需要紀(jì)錄post內(nèi)容的時(shí)候,假如你在sql中定義string長度為1000,就浪費(fèi)了這段空間,mongodb就不會(huì)。而且在取出這條記錄的時(shí)候,sql資料庫會(huì)傳回你定義的那個(gè)結(jié)構(gòu),即使其中的一個(gè)字段為空,而mongodb由於保存的時(shí)候就沒有包含那個(gè)為空的字段,取出來的時(shí)候也同樣不會(huì)有。

還有就是mongodb對(duì)於json的各種結(jié)構(gòu)所支援的很不錯(cuò),當(dāng)然這應(yīng)該不是你採用mongodb的主要目的。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板