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

手把手教你如何進行業務系統數據庫技術選型

數據庫
隨著云計算、大數據、物聯網時代的到來,越來越多的網民涌入互聯網,越來越多的應用系統需要支撐海量數據存儲,還需要隨著業務需求滿足高并發、高可靠、高擴展性等要求,傳統的關系型數據庫已經不能完全滿足需求了,因此NoSQL應運而生。

隨著云計算、大數據、物聯網時代的到來,越來越多的網民涌入互聯網,越來越多的應用系統需要支撐海量數據存儲,還需要隨著業務需求滿足高并發、高可靠、高擴展性等要求,傳統的關系型數據庫已經不能完全滿足需求了,因此NoSQL應運而生。

那么SQL是什么?、NoSQL又是什么?業務系統如何數據庫技術選型呢?

 

手把手教你如何進行業務系統數據庫技術選型

NoSQL!= NO SQL,而是NotOnlySQL,作為關系型數據庫的補充而出現。關系型數據庫即采用了關系模型來組織的數據庫,簡單來說,就是二維表格模型,包含關系(表名)、元組(二維表中的一行)、屬性(二維表中的一列)、域(屬性的取值范圍)、關鍵字(唯一能標識元組的屬性)、關系模式(表結構,對關系的描述)等概念。以一個用戶信息表來說,用戶信息表就是整個關系,元組就是姓名、性別、年齡、電話、地域組成的一行記錄,屬性則是單獨的地域列、年齡列等,域就是地域是中國全省市等,關鍵字就是用戶ID、能唯一標識這個用戶,關系模式就是這整個表,包含姓名、性別、年齡、電話、地域屬性。

對于關系型數據庫來說,一直非常流行的原因有如下四個:

  1. 強事務一致性,數據庫的ACID(原子性、一致性、隔離性、持久性)保障了所有記錄的數據全是準確的,對于早期互聯網來說,大家都不完全信任看不到摸不著的東西,所以這個特點非常重要;
  2. 容易理解,二維表的結構非常貼合現實世界。
  3. 使用方便,通用的sql語言使得操作關系型數據庫非常方便;
  4. 容易維護,在設計的時候采用了實體完整性、參照完整性等理念,減少了數據冗余和數據不一致。常用的關系型數據庫有Mysql、Oracle等。

然而隨著互聯網海量數據的增加,關系型數據庫也產生了瓶頸,具體表現如下:

  • 無法應對高并發的讀寫請求,關系型數據庫是以行結構來存儲的,比如我們想獲取某個地域的用戶名單,需要按行讀取,再獲取其中的用戶名字這一屬性,對于磁盤的IO消耗非常大;
  • 無法彈性伸縮,關系型數據庫無法像webserver那樣簡單的通過增加更多的硬件和服務節點來擴展性能,對于數據庫海量劇增的今天、服務需要24小時提供的企業來說,這非常難受;
  • 不再需要事務強一致性、讀寫實時性,早期這是關系型數據庫的優點,而隨著互聯網業務覆蓋范圍的廣泛,用戶可以接受一定的延遲、一定的錯誤。

因此NoSQL關系型數據庫出現了,作為關系型數據庫的補充,再根據互聯網時代的需求不同,可以分為:

  • 支持高性能并發讀寫的Key-Value數據庫,如Redis;
  • 支持海量數據訪問的文檔數據庫,如MongoDB、CouchDB;
  • 支持大數據存儲和分析的列式數據庫,如HBase;
  • 支持全文搜索的搜索引擎數據庫,如ElasticSearch。

 

手把手教你如何進行業務系統數據庫技術選型

數據庫的使用根據具體的業務場景而確定,毫無疑問,涉及交易場景,關系型數據庫是必不可失的,因為我們要求數據必須一致,不能允許任何的差錯出現。在大部分互聯網企業中,一般是SQL與NoSQL配合使用。現以某高速發展的電商網站來聊聊如何技術選型?

 

[[340971]]

從業務類型來看,電商具備用戶量&訂單量高速增長、網站延遲低、對部分數據準確性要求高的特點,因此需要數據庫能支持高讀寫的并發量、低延遲高吞吐、安全穩定、高可用的特點。從數據類型來看,包含用戶個人信息數據、商品信息數據、交易數據三類,對于交易數據需要保證不能出錯,而其它類數據則要求能存儲不出錯。從數據驅動運營的角度來看,未來會利用用戶在平臺產生的所有數據進行數據分析、智能推薦、二次營銷等。綜上所述,我們選擇的數據庫是MySQL與MongoDB。

選擇MySQL毫無疑問是為了保證業務核心數據如用戶信息、交易數據等不能出錯,這是關系型數據庫的最大優勢。選擇MongoDB則是因為其高可用、文檔模型的特點。關于高可用,首先MongoDB的架構是primary、secondary模式,一個主節點接受server的讀寫,兩個從節點同步primary主節點的數據,當主節點發生故障時,從節點進行選舉,產生新的主節點,從而保障了業務的高可用。

 

手把手教你如何進行業務系統數據庫技術選型

其次MongoDB支持數據分片,當業務量急速擴展時,原先部署數據庫的五臺服務器就不夠了,現在需要增加服務器節點數,對于Mysql來說,采用分庫分表就可以解決問題,對于MongoDB則是通過將一個集合上的數據按片鍵分到不同的分片上,減少同一個數據文件上的數據量,再通過配置文件將數據引向不同的分片即可。

 

手把手教你如何進行業務系統數據庫技術選型

 

手把手教你如何進行業務系統數據庫技術選型

最后MongoDB支持文檔模型,可以根據業務數據類型的變化來去增加或刪減字段,而不需要按照確定的表結構去增加刪除。比如在Mysql中,當一個用戶填寫了家里的收貨地址、公司收貨地址、朋友收貨地址等多個地址時,需要建立聯系人表、地址表將其關聯,而在MongoDB中只需要一個集合就可以搞定了。

 

手把手教你如何進行業務系統數據庫技術選型

 

手把手教你如何進行業務系統數據庫技術選型

在數據庫選型我們都需要考慮數據量、并發量、實時性、一致性、讀寫分布、數據類型、安全性、運維成本都指標,常見的系統數據庫選型如下所示:

 

手把手教你如何進行業務系統數據庫技術選型

現在假設你在主導或參與一個系統的開發,相信你已經非常清楚如何選型數據庫、如何應對后續出現的問題了吧?知其然知其所以然~

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2020-11-27 07:38:43

MongoDB

2009-11-13 15:51:56

路由器配置

2021-07-01 09:31:50

MySQL SQL 語句數據庫

2022-01-08 20:04:20

攔截系統調用

2021-12-28 08:38:26

Linux 中斷喚醒系統Linux 系統

2022-12-07 08:42:35

2022-07-27 08:16:22

搜索引擎Lucene

2011-06-28 12:58:44

表分區

2023-09-16 18:48:28

代碼邏輯

2021-07-14 09:00:00

JavaFX開發應用

2025-04-09 08:21:10

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2025-05-07 00:31:30

2021-09-30 18:27:38

數據倉庫ETL

2021-12-15 08:49:21

gpio 子系統pinctrl 子系統API

2014-08-08 13:22:54

測試手機站點移動設備

2022-06-06 08:50:40

CIOIT轉型

2021-01-19 09:06:21

MysqlDjango數據庫

2023-04-26 12:46:43

DockerSpringKubernetes
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区av在线 | wwww.8888久久爱站网 | 毛片免费观看 | 在线高清免费观看视频 | 日韩欧美三级 | 亚洲色图婷婷 | 免费在线黄| 国产日韩欧美精品 | 99久久婷婷国产精品综合 | 在线不卡视频 | 2018中文字幕第一页 | 成人a视频在线观看 | 91大神xh98xh系列全部 | 久久亚洲国产精品 | 91视频久久 | 日韩精品成人网 | 全免费a级毛片免费看视频免 | 日一区二区三区 | 四虎影院在线播放 | 欧美一级黄色片免费观看 | 亚洲天天干 | 91精品国产91久久久久游泳池 | 自拍偷拍中文字幕 | 中文字幕国产精品 | 欧美电影在线 | 亚州一区二区三区 | 国产精品久久久久久久岛一牛影视 | 欧美国产日韩在线观看成人 | 国产日韩精品视频 | 国产精品观看 | 亚洲欧洲成人av每日更新 | 久久久观看 | 国产精品国产馆在线真实露脸 | 欧美日高清视频 | 国产 日韩 欧美 在线 | 日韩欧美一区二区三区四区 | 日屁视频 | 午夜精品久久久久久久久久久久 | 免费看黄色片 | 国产伦精品一区二区三区四区视频 | 国产日韩视频 |