01 關係型資料庫和非關係型資料介紹

2021-08-19 20:27:41 字數 3874 閱讀 5890

@(mysql調優)

目錄

三、資料庫分類

3.2 非關係型資料庫

3.3 關係型資料庫和非關係型資料庫之間比對

1. 資料庫的安全性、可用性、可靠性、可維護性、容錯性

2. 異地備份、同步、半同步、非同步

3. 兩地三中心

兩地三中心是指資料庫的容災方案。其中三中心分別是指生產資料中心、同城災備中心以及異地災備中心,在這種容災方案下,兩個城市的三個資料中心互聯互通,如果乙個資料中心發生故障或災難,其他資料中心可以正常執行並對關鍵業務或全部業務實現接管。

4. 冷備、熱備

熱備:資料中心間的資料採用實時同步的方式進行備份。比如oracle的rac模式就可以做到熱備模式,就可以做到同時對兩個庫進行增刪改查操作(有存在髒讀髒寫的情況)。採用熱備的方式,可以確保其中乙個資料中心出問題的情況下,資料不會丟失。

冷備:資料1小時或1天備份一次,萬一有問題,可以恢復對應時間段之前的資料。

oracle可以做到真正的熱備,mysql可以通過同步的方式將資料同步到兩台不同的物理資料庫,將查增刪改查交易放到主庫,從庫主要做查詢交易,主庫和從庫之間通過實時同步的方式進行資料的同步,當主庫宕機的情況下,從庫會主動變成主庫,此時dba修復好主庫後,主庫恢復職能,原來的從庫繼續扮演從庫的角色。

作為測試人員,在測試過程中,需要對集群的高可用性,可靠性進行測試。例如:對於mysql集群部署的容災資料庫,利用lr工具對併發的增加資料(加入10000筆資料),觀察資料在新增過程中,將主庫kill掉的情況下,從庫切換到主庫模式(以心跳方式(指切換速度快)切換),在此過程中檢視資料是否丟失,成功率是否為99.9%。單詞測試過程中,這種停掉主庫再重啟方式操作1—-2次即可。

問題:什麼是虛擬ip漂移?

國家要求,一般銀行重要系統,電力、電信等資料庫系統在中原地區、上海、北京等地區需要有異地備份容災機制,有時對於乙個省區而言,需要在省區大型城市之間,要求至少兩個城市之間會有資料備份容災機制,防止戰爭、自然災害等因素造成的損失。兩個城市間資料中心的資料同步方式可以分為非同步、同步、半同步以及非同步的方式。

效能測試工程師發展道路:非功能性測試(在效能滿足指標要求的情況下,往更深層次做,)(內容:高可靠性(案例:在集群部署時,主機宕機時,dba寫的跳轉機制,是否能用。)、高可用性(案例:集群部署時,在宕機啟動過程中,資料可以正常互動。)、安全性(案例:資料庫全許可權控制、資料庫對外埠保密(修改mysql預設埠,防止惡意攻擊)、控制系統開放埠等。)、高維護性測試(案例:斷掉重啟時等情況時,重啟主機,是否能夠確保資料恢復,資料是否丟失。))

包括系統配置與管理資料訪問與更新管理資料完整性管理以及資料安全性管理

包括資料庫檢索修改

包括資料引入引出管理資料庫結構維護資料恢復功能以及效能監測

由於在同一時間內,訪問資料庫的使用者不止乙個,所以資料庫伺服器必須支援並行執行機制,處理多個事件同時發生。

以二維表結構儲存資料的資料庫屬於關係型資料庫。

關係型資料庫最大的特點是事務的一致性,傳統的關係型資料庫讀寫操作都是事務的。具有acid的特點,這個特性使得關係型資料可以用於幾乎所有對一致性有要求的系統中,如典型的銀行系統。

主流的關係型資料庫有:**oracle、mysql、**postgresql、db2、sql server。

postgresql推薦書籍:威長松譯,資料架構師的postgresql修煉、高效設計、開發與維護資料庫應用[m]. 機械工程出版社, 2016.

一號店jd

使用oracle+mysql的混合體系,核心使用oracle一體機(一台oracle exadata x5有24t記憶體,576核cpu,**達幾千萬到上億人民幣)

蘇寧易購

是ibm一手打造的技術團隊和技術體系,使用的是db2、mysql和oracle的混合體系。

攜程旅行

.net技術為主,所以是一般sqlserver為主,mysql為輔的混合體系。

唯品會

也是mysql和oracle的混合體系。

以非二維表結構儲存資料的資料庫屬於非關係型資料庫。

非關係型資料庫是傳統關係型資料庫功能的閹割版本,但其效能較高。嚴格來說,非關係性資料庫並不是不一種資料庫,而是一種資料結構化儲存方式的集合。但需要注意的是對於資料的持久儲存,尤其是海量資料的持久儲存,還是需要一種關係型資料庫。

在使用非關係性資料庫的過程中,典型的應用場景是,把使用者資訊定期從關係型資料庫中遷移到非關係性資料庫中,以提高資料登入的速度。

**主流的非關係型資料庫有:**oracle、mysql、postgresql、db2、sql server,具體分類如下表所示。

資料庫型別

資料庫鍵值儲存資料庫

redis

memcached

文件儲存資料庫

mongodb

couchdb

列儲存資料庫

hbase

cassndra

一般的**,使用者請求到達nginx後,在快取資料庫(redis等)中撈取資料,若撈取到資料直接返回到前端,如果快取資料庫沒有,通過nginx將請求分發到tomcat伺服器,呼叫tomcat伺服器的應用例項,在mysql中查詢資料,將查詢到的資料返回前端。一般而言,對於儲存在快取伺服器中都是一些靜態分析,以及使用者資訊等,快取伺服器可以定期將使用者資訊從mysql中抽取到快取伺服器中,提高使用者的登入速度。

① 效能

非關係性資料庫(nosql)是基於鍵值對的,可以想象成表中主鍵和值的對應關係,而且不需要經過sql層的解析,所以效能非常高。

② 可擴充套件性

由於nosql性資料庫是基於鍵值對的形式儲存,資料之間沒有耦合性,所以非常容易水平擴充套件。

① 複雜查詢

非關係性資料庫(nosql)是基於鍵值對的,可以想象成表中主鍵和值的對應關係,而且不需要經過sql層的解析,所以效能非常高。

② 事務支援

使得對於安全效能很高的資料訪問他要求得以實現。

比對點mongodb

mysql

資料庫模型

非關係性

關係型儲存方式

虛擬化+持久化

不同的引擎有不同的儲存方式

查詢語句

獨特的 mongodb 查詢方式

傳統的sql語句

架構特點

可以通過副本集,以分片來實現可用

常見的有單點,m-s,mha,mmm,cluster等架構方式

資料處理方式

基於記憶體,將熱資料存在物理記憶體中,從而達到高速讀寫

不同的引擎有用其自己的特點

成熟度新興資料庫,成熟度較低

擁有較為成熟的體系,成熟度高

廣泛度nosql資料庫中,mongdb是較為完善的bd之一,使用人群在不斷增加

開源資料庫份額不斷增加,mysql的份額也在持續增長

關係型和非關係型資料庫

1.資料庫種類 老式 層次式資料庫 網路資料庫和關係型資料庫 新式 關係型資料庫和非關係型資料庫 nosql資料庫 2.關係型資料庫 可表示為二維 訪問關係型資料庫用sql語言 結構化查詢語言 最典型的產品是mysql mariadb是mysql的乙個分支 和oracle 3.非關係型資料庫 nos...

關係型資料庫和非關係型資料庫

關係型資料庫 mysql oracle等 非關係型資料庫 nosql hbase,mongodb,redis等 優勢 可以在乙個表以及多個表之間做複雜的資料查詢 支援事務,保持資料的一致性。優勢 基於鍵值對,不需要經過sql解析,資料之間沒有耦合,易水平擴充套件。資料儲存在快取中,查詢速度快。可以儲...

關係型資料庫和非關係型資料庫

關聯式資料庫是資料項之間具有預定義關係的資料項的集合。這些項被組織為一組具有列和行的表。表用於儲存有關要在資料庫中表示的物件的資訊。表中的每列都儲存著特定型別的資料,字段儲存著屬性的實際值。表中的行表示乙個物件或實體的相關值的集合。表中的每一行可標有乙個稱為主鍵的唯一識別符號,並且可使用外來鍵在多個...