1. 程式人生 > >網際網路公司為啥不使用mysql分割槽表?

網際網路公司為啥不使用mysql分割槽表?

解決什麼問題?

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

 

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

回答:分庫分表,分割槽表

 

什麼是mysql的分庫分表?

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

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

 

什麼是mysql的分割槽表?

回答:所有資料還在一個表中,但物理儲存根據一定的規則放在不同的檔案中。這個是mysql支援的功能,業務rd程式碼無需改動。

 

看上去分割槽表很帥氣,為什麼大部分網際網路還是更多的選擇自己分庫分表來水平擴充套件咧?

回答:

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

2)一旦資料量併發量上來,如果在分割槽表實施關聯,就是一個災難

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

4)運維的坑,嘿嘿

5)…