原 MongoDB在系統中的使用

2021-06-26 23:07:59 字數 1222 閱讀 7876

序)

nosql並不是要取代原有的資料產品,而是為不同的應用場景提供更多的選擇。

一)結構型別

傳統資料庫的領域在於結構化文件,對於非結構化文件和半結構化文件,它能處理,但是有一定的缺陷,那麼什麼又是結構化文件,概括如下:

結構化資訊——這種資訊可以在關聯式資料庫中找到,多年來一直主導著it應用。這是關鍵任務oltp系統業務所依賴的資訊,另外,還可對結構資料庫資訊進行排序和查詢;

半結構化資訊——這是it的第二次浪潮,包括電子郵件,文書處理檔案以及大量儲存和發布在網路上的資訊。半結構化資訊是以內容為基礎,可以用於搜尋,這也是谷歌存在的理由;

二)mongodb和行導向資料庫的區別

老實說,我覺得nosql領域比較奇葩的東西算是hive,不過在此不介紹它,對於專案中使用到mongodb,也是有一定原因的,我一直以為nosql這種東西和行導向資料庫並不衝突,它僅僅是行導向資料的乙個補充,對於mongodb,它和我們用的mysql,oracle等有什麼區別,曾經我也查詢過一些東西,發現網上很多相關的文章都是千篇一律,幾乎一模一樣,沒啥價值,於是捉摸自己總結下。

舉個栗子:

uidname

age1

張三18

在上面的表中,很直接,資料也很直觀,但是如果我們需要儲存另外乙個東西:頭像,一般人會這樣幹:

uidname

agephoto1張三

18./upload/1.png

儘管不同資料庫都提供了直接儲存二進位制的資料庫字段,但是我還是會選擇以上的儲存方式,我相信也有很多人也會這樣做,這樣做其實沒有什麼不好,但是如果我們的檔案很大,幾個gb,那麼無論讀還是寫都會很耗時,成為系統的瓶頸,基於這種情況,才會誕生雲計算以及nosql這些東西,也就是說hadoop,hbase等誕生的原因是:

多年來磁碟儲存容量快速增加的同時,訪問速度-磁碟資料讀取速度卻未能與時俱進,定址時間的提高遠遠慢於傳輸速率的提高,定址是將磁碟移動到特定磁碟位置進行讀寫操作,它是導致磁碟操作延遲的主要原因,而傳輸速率取決與磁碟的頻寬。

於是人們想出了乙個辦法:既然在乙個伺服器讀取乙個檔案需要100個小時,那麼將檔案放在100個伺服器,每個伺服器放1%的資料,那麼1小時就搞定了,這也是hadoop的核心思想,mongodb資料庫繼承了這一思想,它的區塊劃分,以及節點**,都延續了這樣的思想,另一方面,mongodb又吸取了memcached的東西,提前申請一片記憶體區域以及檔案區域,將記憶體中的位址和實體地址對應起來,可以極高的提高速度,這也是mongodb相當的消耗記憶體和磁碟的原因之一。

在cmd使用mongoDB的指令

文章為總結而得 建立log目錄d mongodb logs 輸入命令如下 注意 要在c windows system32目錄下輸入命令 1 建立成功 為了更好的檢視服務是否真的建立成功,我們可以右擊計算機 管理 服務 來檢視 在cmd介面輸入 1 net start mongodb 啟動服務 如果要...

在 Docker 中使用 MongoDB

如果你是一名 mongodb 的初學者,那麼你入門 mongodb 的第一件事就是安裝,但是安裝 mongodb 還需要自己配置一些服務。這時候,docker 就能幫上大忙,它能夠讓你不需要本地安裝 mongodb 就能使用。首先你的電腦上需要 安裝 docker,然後在 docker 的映象中查詢...

python在linux系統中的使用

python在linux中已經預設安裝,但版本較低,比如在centos6.3上預設為python2.6.6 解壓檔案,tar zxvf python 3.4.4.tgz 編譯安裝 python2.6的路徑為 usr bin python python3.4的路徑為 usr local bin pyt...