MySQL分庫分表原理

2021-09-12 06:48:24 字數 447 閱讀 3600

在網際網路還未崛起的時代,我們的傳統應用都有這樣乙個特點:訪問量、資料量都比較小,單庫單錶都完全可以支撐整個業務。隨著網際網路的發展和使用者規模的迅速擴大,對系統的要求也越來越高。因此傳統的mysql單庫單錶架構的效能問題就暴露出來了。而有下面幾個因素會影響資料庫效能:

為了提公升效能,所以我們必須要解決上述幾個問題,那就有必要引進分庫分表。

垂直拆分 or 水平拆分?

當我們單個庫太大時,我們先要看一下是因為表太多還是資料量太大,如果是表太多,則應該將部分表進行遷移(可以按業務區分),這就是所謂的垂直切分。如果是資料量太大,則需要將表拆成更多的小表,來減少單錶的資料量,這就是所謂的水平拆分。

垂直拆分

水平拆分

幾種常用的分庫分表的策略

分庫分表後引入的問題

使用分庫分表中介軟體

此外還有**的tddl,支付寶的oneproxy,360的atlas等。

MySQL分庫分表原理

前言 在網際網路還未崛起的時代,我們的傳統應用都有這樣乙個特點 訪問量 資料量都比較小,單庫單錶都完全可以支撐整個業務。隨著網際網路的發展和使用者規模的迅速擴大,對系統的要求也越來越高。因此傳統的mysql單庫單錶架構的效能問題就暴露出來了。而有下面幾個因素會影響資料庫效能 為了提公升效能,所以我們...

mysql分表分庫實現 MySql分表分庫思路

一.資料庫瓶頸 1.1io瓶頸 第一種 磁碟讀io瓶頸,熱點資料太多,資料庫快取放不下,每次查詢時會產生大量的io 分庫和垂直分表 第二種 網路io瓶頸,請求的資料太多,網路頻寬不夠 分庫 1.2cpu瓶頸 第一種 sql問題,如sql中包含join,group by,order by,非索引字段條...

MySQL範圍分表分庫 mysql 分表分庫策略

唯一id的生成 下面列舉幾種常見的唯一id生成方案,需要滿足兩大核心需求 1.全域性唯一 2趨勢有序 1.用資料庫的auto increment 自增id 來生成,每次通過寫入資料庫一條記錄,利用資料庫id自增的特性獲取唯一,有序的id。優點 使用資料庫原有的功能,相對簡單 能夠保證唯一 能夠保證遞...