真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

我為什么放棄MySQL?選擇了MongoDB-創(chuàng)新互聯(lián)

最近有個項(xiàng)目的功能模塊,為了處理方便,需要操作集合類型的數(shù)據(jù)以及其他原因??紤]再三最終決定放棄使用MySQL,而選擇MongoDB。

創(chuàng)新互聯(lián)公司長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為南和企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),南和網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

兩個數(shù)據(jù)庫,大家應(yīng)該都不陌生。他們大的區(qū)別就是MySQL為關(guān)系型數(shù)據(jù)庫,而MongoDB為非關(guān)系型數(shù)據(jù)庫。常見的關(guān)系型數(shù)據(jù)庫有:MySQL、Oracle、DB2、SQL Server、Postgre SQL等,非關(guān)系型數(shù)據(jù)庫有MongoDB、Redis、Memcached、HBse等等。

1  關(guān)系型數(shù)據(jù)庫? 非關(guān)系型數(shù)據(jù)庫?

我為什么放棄MySQL?選擇了MongoDB

關(guān)系型數(shù)據(jù)庫可以理解為依賴一個模型來創(chuàng)建的數(shù)據(jù)庫,比如我們使用的MySQL中的表是由橫列和縱列組成的一個二維表格。關(guān)系型數(shù)據(jù)庫可以通過關(guān)系模型使多個表的數(shù)據(jù)關(guān)聯(lián)起來,比如我們平時說的  一對一、一對多、多對一。由于是建立在數(shù)據(jù)模型的基礎(chǔ)上,所以我們可以通過SQL語句很方便的在多個表之間做復(fù)雜的查詢操作。關(guān)系型數(shù)據(jù)庫相對安全,因?yàn)橹苯哟鎯υ谟脖P中所以突然的宕機(jī)、停電等意外不會導(dǎo)致數(shù)據(jù)丟失。MySQL的存儲方式是由自身的引擎決定的,常用的引擎有Innodb和MyISAM。他們主要的區(qū)別就是MyISAM 不支持事務(wù),強(qiáng)調(diào)的是性能,執(zhí)行速度比Innodb要快,Innodb提供支持事務(wù)等高級數(shù)據(jù)庫功能。

我為什么放棄MySQL?選擇了MongoDB

非關(guān)系型數(shù)據(jù)庫即我們常說的NoSQL數(shù)據(jù)庫,部署起來都比較簡單,沒有關(guān)系型數(shù)據(jù)庫那么復(fù)雜。Mongo的存儲方式為虛擬內(nèi)存+持久化存儲,Mongo將數(shù)據(jù)寫入內(nèi)存中,再由虛擬內(nèi)存管理器將其持久化到硬盤中,因此寫操作會比關(guān)系型數(shù)據(jù)庫快很多。NOSQL的存儲格式是key-value形式,可以像關(guān)系型數(shù)據(jù)庫那樣存儲基礎(chǔ)數(shù)據(jù)類型的數(shù)據(jù),也可以存儲集合、對象等等。NoSQL雖然性能比較高,但是并不支持事物,也不能進(jìn)行聯(lián)表查詢,一般用于較大規(guī)模數(shù)據(jù)的存儲。

2  他們的優(yōu)點(diǎn)、缺點(diǎn)有哪些

關(guān)系型數(shù)據(jù)庫發(fā)展了很長一段時間,擁有非常成熟的體系。所占份額也在逐漸增加。而且支持事物的操作,保證數(shù)據(jù)的一致性,可以通過SQL語句完成復(fù)雜的操作。但是使用過程中當(dāng)數(shù)據(jù)量到達(dá)一定程度時,關(guān)系型數(shù)據(jù)庫的效率會有明顯的下降。一個復(fù)雜的查詢操作,一系列的組合索引都會消耗非常多的內(nèi)存空間,此時我們需要對數(shù)據(jù)庫進(jìn)行讀寫分離操作,或者將數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行拆分(水平拆分、垂直拆分)將請求壓力分擔(dān)在不同的庫中。

垂直拆分是指將一張表拆分成多個表,表之間通過主鍵進(jìn)行關(guān)聯(lián)。

水平拆分是按照某種規(guī)則拆分成多個表,比如通過用戶角色進(jìn)行拆分

讀寫分離:所謂讀寫分離就是講讀操作(查詢數(shù)據(jù))和寫操作(插入&更新)指向不同的數(shù)據(jù)庫節(jié)點(diǎn),他們中間通過某種機(jī)制實(shí)現(xiàn)數(shù)據(jù)的同步,如binlog。實(shí)際的應(yīng)用中大部分壓力還是來自讀操作,所以主要是一主多從的架構(gòu)。

非關(guān)系型數(shù)據(jù)庫發(fā)展的這幾年,深受人們的喜愛。免費(fèi)開源、成本低、部署簡單、非結(jié)構(gòu)化存儲等等明顯的優(yōu)勢。而且它對海量數(shù)據(jù)處理能力非常強(qiáng),內(nèi)存級數(shù)據(jù)庫,查詢速度也非???。存儲的數(shù)據(jù)格式比較豐富,易于擴(kuò)展,雖然不能使用sql進(jìn)行復(fù)雜的查詢,但是MongoDB支持JavaScript,所以可以通過js腳本進(jìn)行復(fù)雜的數(shù)據(jù)庫管理操作。關(guān)于NoSQL的缺點(diǎn)個人感覺目前就是不支持事物了吧,其他方面那都不是事兒。

3  什么時候用mongo

我為什么放棄MySQL?選擇了MongoDB


 Mongo是用c++編寫的,支持多種語言如:Java、Python、Ruby、PHP、C++、C# 等,有時候針對不同的業(yè)務(wù)需求,選擇Mongo能夠避免浪費(fèi)很多不必要的資源

日志系統(tǒng)

系統(tǒng)運(yùn)行過程中產(chǎn)生的日志信息,一般種類較多、范圍較大、內(nèi)容也比較雜亂。通過MongoDB可以將這些雜亂的日志進(jìn)行收集管理。不僅方便了管理,查找或者導(dǎo)出也會變得非常容易

地理位置存儲

MongoDB支持地理位置、二維空間索引,可以存儲經(jīng)緯度,因此可以很快的計算出兩點(diǎn)之間的距離,等位置信息。如查詢附近的人、或者訂餐系統(tǒng)、配送系統(tǒng)等

數(shù)據(jù)規(guī)模增長很快

 前面提到過關(guān)系型數(shù)據(jù)庫數(shù)據(jù)量過大時,需要進(jìn)行分庫分表,這樣真正操作起來可能會比較麻煩。如果選擇mongo進(jìn)行分庫分表操作時,就會變得很簡單。

保證高可用的環(huán)境

Mongo本身就擁有高可用及分區(qū)的解決方案,設(shè)置主從服務(wù)器非常方便,除此之外Mongo還可以快速并且安全的實(shí)現(xiàn)故障節(jié)點(diǎn)的轉(zhuǎn)移。

文件存儲需求

GridFS是MongoDB規(guī)范,用于存儲和檢索圖片、音頻、視頻等大文件。GridFS雖然是文件存儲的一種方式,可以存儲超過16M的文件。但是它本身又是存儲在MongoDB集合中的

其他場景

如游戲開發(fā)中我們可以通過MongoDB存儲用戶信息、裝備、積分等,除此之外物流系統(tǒng)、社交系統(tǒng)、甚至物聯(lián)網(wǎng)系統(tǒng),Mongo都能提供完美的數(shù)據(jù)存儲服務(wù)。

4  MySQL、MongoDB簡單的性能測試

關(guān)于兩個數(shù)據(jù)的性能,最有力的的說話還是通過實(shí)踐來進(jìn)行測試,網(wǎng)上看到一組測試數(shù)據(jù),分享給大家。

測試環(huán)境:Windows 10、內(nèi)存8G、CPU i5 3.30GHZ。均無索引

測試語言:Python

鏈接工具:pymysql、pymongo

MySQL && Mongo 測試數(shù)據(jù)統(tǒng)計


提交次數(shù)單次提交個數(shù)MySQL運(yùn)行時間(s)Mongo運(yùn)行時間(s)數(shù)據(jù)量
110001000039121622.020
2100100301.611000萬
31001005.771.600
410252.351.560
510257.421.601000萬
6100001298.075.290
7100001496.185.291000萬

文章題目:我為什么放棄MySQL?選擇了MongoDB-創(chuàng)新互聯(lián)
URL地址:http://weahome.cn/article/dccioj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部