二十三、數據庫性能優化方案

數據庫的優化方案核心本質有三種:減少數據量用空間換性能選擇合適的存儲系統,這也對應了開篇講解的慢的三個原因:數據總量、高負載、查找的時間複雜度。

 一、減少數據量
數據序列化存儲、數據歸檔、中間表生成、分庫分表。
二、用空間換性能

  該類型的兩個方案都是用來應對高負載的場景,方案有以下兩種:分佈式緩存、一主多從。

  與其說這個方案叫用空間換性能,我認爲用空間換資源更加貼切一些。因此兩個方案的本質主要通數據冗餘、集羣等方式分擔負載壓力。

  對於關係型數據庫而言,因爲他的ACID特性讓它天生不支持寫的分佈式存儲,但是它依然天然的支持分佈式讀。 

三、選擇合適的存儲系統

 NoSQL主要以下五種類型:鍵值型、文檔型、列型、圖型、搜素引擎,不同的存儲系統直接決定了查找算法存儲數據結構,也應對了需要解決的不同的業務場景。NoSQL的出現也解決了關係型數據庫之前面臨的難題(性能、高併發、擴展性等)。

       例如,ElasticSearch的查找算法是倒排索引,可以用來代替關係型數據庫的低性能、高消耗的Like搜索(全表掃描)。而Redis的Hash結構決定了時間複雜度爲O(1),還有它的內存存儲,結合分片集羣存儲方式以至於可以支撐數十萬QPS。

  因此本類型的方案主要有兩種:CQRS、替換(選擇)存儲,這兩種方案的最終本質基本是一樣的主要使用合適存儲來彌補關係型數據庫的缺點,只不過切換過渡的方式會有點不一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章