這篇文章主要介紹了mybatis實現mysql數據庫分庫分表操作和總結,需要的朋友可以參考下
前言
作為一個數據庫,作為數據庫中的一張表,隨著用戶的增多隨著時間的推移,總有一天,數據量會大到一個難以處理的地步。這時僅僅一張表的數據就已經超過了千萬,無論是查詢還是修改,對于它的操作都會很耗時,這時就需要進行數據庫切分的操作了。
MyBatis實現分表最簡單步驟
既然文章的標題都這么寫了,不如直接上干貨來的比較實際,我們就先來看看如何實現最簡單的分表。
1、我們模擬用戶表數據量超過千萬(雖然實際不太可能)
2、用戶表原來的名字叫做user_tab,我們切分為user_tab_0和user_tab_1(實際也可能不是這么隨意的名字),這樣就能把原來千萬的數據分離成兩個百萬的數據量的兩張表了。
3、如何操作這兩張表呢?我們利用userId也就是用戶的唯一標識進行區分。
4、userId%2 == 0的用戶操作表user_tab_0,同理userId%2 == 1的用戶操作表user_tab_1
5、那么在MyBatis中sql語句如何實現呢?下面是舉例查詢一個用戶的sql語句
<select>? ????SELECT?userId,?name? ????FROM?user_tab_#{tabIndex}? ????WHERE?userId?=?#{userId}? </select>
其中我們傳入了兩個參數tabIndex和userId,tabIndex就是需要操作表的標示值(0或1),這樣如果需要查詢userId為5的用戶,那么最終出現的sql語句就會是:
SELECT?userId,?name? FROM?user_tab_1? WHERE?userId?=?5
其他多余的DAO服務和實現我這里就不多展示了,相信聰明的你肯定會的。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END