1. 程式人生 > >數據庫設計以及優化 - 分區表

數據庫設計以及優化 - 分區表

單表 解決 自己 分布 文件 spa 數據庫 物理 mysql

HASH 分區:

技術分享圖片

分區在實際使用過程中的缺點:

解決什麽問題?

回答:當mysql單表的數據庫過大時,數據庫的訪問速度會下降,“數據量大”問題的常見解決方案是“水平切分”。

mysql常見的水平切分方式有哪些?

回答:分庫分表,分區表

什麽是mysql的分庫分表?

回答:把一個很大的庫(表)的數據分到幾個庫(表)中,每個庫(表)的結構都相同,但他們可能分布在不同的mysql實例,甚至不同的物理機器上,以達到降低單庫(表)數據量,提高訪問性能的目的。

分庫分表往往是業務層實施的,分庫分表後,為了滿足某些特定業務功能,往往需要rd修改代碼。

什麽是mysql的分區表?

回答:所有數據還在一個表中,但物理存儲根據一定的規則放在不同的文件中。這個是mysql支持的功能,業務rd代碼無需改動。

看上去分區表很帥氣,為什麽大部分互聯網還是更多的選擇自己分庫分表來水平擴展咧?

回答:

1)分區表,分區鍵設計不太靈活,如果不走分區鍵,很容易出現全表鎖

2)一旦數據量並發量上來,如果在分區表實施關聯,就是一個災難

3)自己分庫分表,自己掌控業務場景與訪問模式,可控。分區表,研發寫了一個sql,都不確定mysql是怎麽玩的,不太可控

4)運維的坑,嘿嘿

5)…

範圍分區

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

數據庫設計以及優化 - 分區表