其他網址
MySQL面試題(六)數據庫的分庫分表原理詳解_數據庫_weixin_38399962的博客-CSDN博客
分庫分表實戰 - 簡書
分庫分表(1) --- 理論 - 雨點的名字 - 博客園
徹底搞清分庫分表(垂直分庫,垂直分表,水平分庫,水平分表)_數據庫_攀博分享-CSDN博客
mysql 垂直分表 實踐記錄_數據庫_NRGAGA的專欄-CSDN博客
一條數據中的字段太多,200多個,嘗試將字段全部建在一張表內,出現錯誤:
Mysql [Err] 1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.
嘗試了網上各種辦法後依然無效,無奈考慮到垂直分表,將字段分別建立在兩張表內。
其中有幾點值得記錄:【數據持久化使用 Mybatis】
- 創建表:兩張表有一個取值相同的字段id:字段名可相同,也可不同,但字段值要相同;以此確定兩張表中的一條數據,
- 查詢時:第1 張表 Table1 左外連接(Left Outer Join ) 第2 張表 Table2 on Table1.id = Table2.id
- 新增時,判斷字段屬於哪一個表,根據字段所屬表,將數據插入到對應表內。
(1)、要插入的數據 ,全部封裝在 一個 PG內(我自己代碼裏寫的一個鍵值對 Map,鍵:字段名,值:字段值)
(2)、在 Mapper 內明確好 每個表的表名,所包含的字段
(3)、拼接好 每個表 新增數據的 SQL語句
(4)、PG 傳入後,自動匹配字段,從而自動插入到不同的表
=============================分割線==============================
另一個需求:由於我的數據是分批上傳,需要保留每一批上傳數據的歷史記錄,因此::
- 在兩個表內 都增加一個 “recordid” 字段,每一批數據一個唯一的 recordid (實質上只需要第一個表有這個字段就行,兩個表數據根據相同的 ID 關聯 ,這裏第二個表也存了recordid,有數據冗餘,只是感覺到以後會用到)。
- 新增一個 record 表,表內至少有一個 recordid 字段,create_time 字段, 還有其他業務的自定義字段,保存每次上傳信息。
- 查詢上傳記錄時,首先查詢 record 表,再從 record 表 內提取 recordid 去數據表內查詢 該批次數據。
原來沒有分庫分表,後期如何分庫分表?
現在有一個未分庫分表的系統,未來要分庫分表,如何設計纔可以讓系統從未分庫分表**動態切換**到分庫分表上? - 簡書
分庫分表的全局ID如何維護一致性?
Sharding-jdbc分庫分表實例
其他網址:
sharding-jdbc之——分庫分表實例_數據庫_冰河的專欄-CSDN博客