如何實現分庫分表,有哪些策略,為什麼能提高查詢效率

2022-04-14 09:49:35 字數 567 閱讀 4499

在大型電商**中,隨著業務的增多,資料庫中的資料量也是與日俱增,這時候就要將資料庫進行分庫分表了。下面分析下以下幾個問題:

1、資料庫如何實現分庫分表?

兩種方案:垂直和水平。

垂直拆分:根據業務進行拆分,比如可以分庫訂單資料庫,商品資料庫,支付資料庫等。

水平拆分:即根據表來進行分割:比如user表可以拆分為user0,、user1、user2、user3等等

2、分庫分表後如何實現聯合查詢呢?

可以使用第三方的資料庫中介軟體來實現,比如:mycat、shadinng-jdbc

具體原理:

當客戶端發出一條sql指令時:比如select * from user

此時中介軟體會將此語句根據有n個子表,拆分成n條語句:即select * from user1,select * from user2,select * from user3等多條sql語句,去子表中查詢。

然後將結果返回給中介軟體,中介軟體進行彙總返回給客戶端。而這些子語句是同時執行的,所以查詢效率非常高。

3、為什麼分庫分表後可以提高查詢效率?

因為採用了第三方中介軟體多執行緒合併查詢。

為什麼要分庫分表

初學者在看到這個問題的時候,可能首先想到的是 mysql 一張表到底能存放多少條資料?根據 mysql 官方文件的介紹,mysql 理論上限是232 受限於32位軟體 條資料,然而實際操作中,往往還受限於下面兩條因素 myisamdatapointersize,mysql 的 myisamdatap...

資料庫為什麼要分庫分表及實現策略

1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...

mysql為什麼要分庫分表?

1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?單錶運算元據量有最優值,mysql為1000萬左右 可以減輕資料庫的壓力,不用所有執行緒都查同乙個資料庫 資料庫中的資料量不一定...