怎麼進行業務系統資料庫技術選型?

2021-10-09 09:12:52 字數 1978 閱讀 1865

隨著雲計算、大資料、物聯網時代的到來,越來越多的網民湧入網際網路,越來越多的應用系統需要支撐海量資料儲存,還需要隨著業務需求滿足高併發、高可靠、高擴充套件性等要求,傳統的關係型資料庫已經不能完全滿足需求了,因此nosql應運而生。

那麼sql是什麼?、nosql又是什麼?業務系統如何資料庫技術選型呢?

nosql!= no sql,而是notonlysql,作為關係型資料庫的補充而出現。關係型資料庫即採用了關係模型來組織的資料庫,簡單來說,就是二維**模型,包含關係(表名)、元組(二維表中的一行)、屬性(二維表中的一列)、域(屬性的取值範圍)、關鍵字(唯一能標識元組的屬性)、關係模式(表結構,對關係的描述)等概念。以乙個使用者資訊表來說,使用者資訊表就是整個關係,元組就是姓名、性別、年齡、**、地域組成的一行記錄,屬性則是單獨的地域列、年齡列等,域就是地域是中國全省市等,關鍵字就是使用者id、能唯一標識這個使用者,關係模式就是這整個表,包含姓名、性別、年齡、**、地域屬性。

對於關係型資料庫來說,一直非常流行的原因有如下四個:

強事務一致性,資料庫的acid(原子性、一致性、隔離性、永續性)保障了所有記錄的資料全是準確的,對於早期網際網路來說,大家都不完全信任看不到摸不著的東西,所以這個特點非常重要;

容易理解,二維表的結構非常貼合現實世界。

使用方便,通用的sql語言使得操作關係型資料庫非常方便;

容易維護,在設計的時候採用了實體完整性、參照完整性等理念,減少了資料冗餘和資料不一致。常用的關係型資料庫有mysql、oracle等。

然而隨著網際網路海量資料的增加,關係型資料庫也產生了瓶頸,具體表現如下:

因此nosql關係型資料庫出現了,作為關係型資料庫的補充,再根據網際網路時代的需求不同,可以分為:

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

從業務型別來看,電商具備使用者量&訂單量高速增長、**延遲低、對部分資料準確性要求高的特點,因此需要資料庫能支援高讀寫的併發量、低延遲高吞吐、安全穩定、高可用的特點。從資料型別來看,包含使用者個人資訊資料、商品資訊資料、交易資料三類,對於交易資料需要保證不能出錯,而其它類資料則要求能儲存不出錯。從資料驅動運營的角度來看,未來會利用使用者在平台產生的所有資料進行資料分析、智慧型推薦、二次營銷等。綜上所述,我們選擇的資料庫是mysql與mongodb。

選擇mysql毫無疑問是為了保證業務核心資料如使用者資訊、交易資料等不能出錯,這是關係型資料庫的最大優勢。選擇mongodb則是因為其高可用、文件模型的特點。關於高可用,首先mongodb的架構是primary、secondary模式,乙個主節點接受server的讀寫,兩個從節點同步primary主節點的資料,當主節點發生故障時,從節點進行選舉,產生新的主節點,從而保障了業務的高可用。

其次mongodb支援資料分片,當業務量急速擴充套件時,原先部署資料庫的五颱伺服器就不夠了,現在需要增加伺服器節點數,對於mysql來說,採用分庫分表就可以解決問題,對於mongodb則是通過將乙個集合上的資料按片鍵分到不同的分片上,減少同乙個資料檔案上的資料量,再通過配置檔案將資料引向不同的分片即可。.

最後mongodb支援文件模型,可以根據業務資料型別的變化來去增加或刪減字段,而不需要按照確定的表結構去增加刪除。比如在mysql中,當乙個使用者填寫了家裡的收貨位址、公司收貨位址、朋友收貨位址等多個位址時,需要建立聯絡人表、位址表將其關聯,而在mongodb中只需要乙個集合就可以搞定了。

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

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

記憶體資料庫技術選型

最近一段時間研究了記憶體資料庫,總結了一下,分享給大家。我們先從應用場景說起。一.記憶體資料庫的應用場景 二.業界有哪幾類主流的記憶體資料庫 1.關係型記憶體資料庫 2.鍵值對記憶體資料庫 3.傳統資料庫的記憶體資料庫引擎 還有oracle 的timesten sap的hana等,這些商業中介軟體不...

mysql資料庫技術選型 MySQL 選擇資料庫

mysql 選擇資料庫 在你連線到 mysql 資料庫後,可能有多個可以操作的資料庫,所以你需要選擇你要操作的資料庫。從命令提示視窗中選擇mysql資料庫 在 mysql 提示視窗中可以很簡單的選擇特定的資料庫。你可以使用sql命令來選擇指定的資料庫。例項以下例項選取了資料庫 w3cschool r...

資料庫系統概論 010 資料庫恢復技術

一 事物的基本概念 1 事物 是使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全不做,是乙個不可分割的工作單位。事物的開始和結束可以由使用者顯式控制。如果使用者沒有顯式的定義事物,則有dbms按預設規定自動劃分事物。2 begin transaction commit 表示提交事物的所有操作,...