成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

數據庫 MySQL MongoDB
最近有個項目的功能模塊,為了處理方便,需要操作集合類型的數據以及其他原因。考慮再三最終決定放棄使用MySQL,而選擇MongoDB。

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

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

1關系型數據庫? 非關系型數據庫?

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

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

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

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

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

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

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

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

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

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

3什么時候用mongo

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

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

日志系統(tǒng)

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

地理位置存儲

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

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

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

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

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

文件存儲需求

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

其他場景

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

4MySQL、MongoDB簡單的性能測試

關于兩個數據的性能,最有力的的說話還是通過實踐來進行測試,網上看到一組測試數據,分享給大家。

  • 測試環(huán)境:Windows 10、內存8G、CPU i5 3.30GHZ。均無索引
  • 測試語言:Python
  • 鏈接工具:pymysql、pymongo

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

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

 

責任編輯:未麗燕 來源: 程序員共成長
相關推薦

2023-07-23 17:19:34

人工智能系統(tǒng)

2021-02-01 07:20:51

KafkaPulsar搜索

2020-06-10 09:06:48

MongoDB架構高可用

2011-06-08 10:30:08

MongoDB

2023-09-22 10:48:42

MySQLPostgreSQL

2023-09-14 23:08:54

PostgreSQLMySQL

2024-06-24 07:58:00

2020-08-14 10:40:35

RestTemplatRetrofitJava

2020-09-16 14:56:11

MYSQL知識數據庫

2020-02-13 17:49:55

SpringBoot放棄選擇

2022-06-14 11:01:48

SpringBootTomcatUndertow

2012-02-28 09:11:51

語言Lua

2020-05-09 11:40:54

PythonGo語言

2012-11-14 20:55:07

容錯服務器選型CIO

2013-10-22 15:18:19

2018-09-28 10:06:21

移動開發(fā)App

2017-02-27 15:19:04

2023-01-12 09:01:01

MongoDBMySQL

2020-02-24 09:38:05

PythonGo語言Linux

2020-03-03 15:31:47

ReactVue前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久综合一区 | 午夜影视在线观看 | 亚洲精品一区av在线播放 | 久久国产欧美一区二区三区精品 | 91色网站 | 国产在线精品一区二区 | 天堂av中文 | 午夜网 | 亚洲天堂精品一区 | 2021狠狠天天天 | 99久久国产精 | 午夜精品久久久久久久久久久久久 | 久久一二 | 国产高清视频在线 | 一区二区三区欧美在线观看 | 亚洲精选久久 | 免费艹逼视频 | 高清视频一区二区三区 | 51ⅴ精品国产91久久久久久 | 久久在线看 | 亚洲精品电影 | 日韩欧美国产一区二区三区 | 男女视频免费 | 巨大黑人极品videos精品 | 亚洲一区国产 | 日韩高清www | 精品久| 狠狠干av| 一区二区三区日韩 | 日韩欧美中文 | 国产精品免费一区二区三区四区 | 欧美寡妇偷汉性猛交 | 日本精品视频一区二区三区四区 | 国产片侵犯亲女视频播放 | 国产精品亚洲成在人线 | 国产精品99久久久久久www | 欧美激情一区二区三级高清视频 | 久久青草av | 98久久 | 欧美中文一区 | 国产精品国产成人国产三级 |