工作深度總結——分庫分表sharding-jdbc實踐路線
一.Why&when
Mysql資料量超過500萬,查詢效率就會受到影響。為了滿足資料量劇增,且查詢較慢的問題,準備接入sharding-jdbc進行系統優化,提高系統效能。我們主要採用的它的分表功能解決大資料儲存和查詢效能問題。
類似產品:mycat,也可以自己封裝。
Mycat優勢:文件全面。缺點:學習和維護成本高,比較重
自己封裝優勢:實現規則自定義。缺點:麻煩,維護成本高
Sharding-jdbc:輕量,支援分庫分表,對於單表增刪改查支援的很好。 缺點:分表規則需要自己實現,不支援部分sql語句,擴容有問題。
二.What
Sharding-jdbc是噹噹開源的資料庫中介軟體。Sharding-JDBC集分庫分表、讀寫分離、分散式主鍵、柔性事務和資料治理與一身,提供一站式的解決分散式關係型資料庫的解決方案。
詳情可檢視官網http://shardingjdbc.io/
跟官網同學交流 https://gitter.im/Sharding-JDBC/shardingjdbc
Github程式碼資源https://github.com/shardingjdbc
三.How
學習方法,結合在github裡面的sharding-jdbc-example,嘗試一下簡單的分庫分表就可以了。
重點:
分表方式——採用分散式主鍵hash或者取餘數的方法,進行資料雜湊。
Sql不支援——有一些sql語句不夠支援,官網上面也有提示,比如批量插入,需要自己封裝,很簡單的。
缺點:
查詢資料的時候稍繁瑣,需要自己寫sql,可以採用工具生成批量的sql。
查詢id的時候需要確定在哪張表,需要根據自定義計算規則進行求餘,我自己開發了一個介面,專門批量提供id對應的sql語句。
難點:擴容、事務(暫時系統沒有用到)
四.Where
最佳實踐,公共服務影像服務,大部分操作都是對一張表的操作,沒有過多的左右連線操作,當前2000萬資料,需要接入業務方遷移5T歷史資料。
相關文章
- 分庫分表總結
- SpringBoot使用Sharding-JDBC分庫分表Spring BootJDBC
- 採用Sharding-JDBC解決分庫分表JDBC
- 3.1 MYSQL分庫分表實踐MySql
- 資料庫分庫分表的總結資料庫
- Sharding-JDBC基本使用,整合Springboot實現分庫分表,讀寫分離JDBCSpring Boot
- sharding-jdbc水平垂直分庫分表環境搭建JDBC
- 【乾貨】分庫分表最佳實踐
- MariaDB Spider 資料庫分庫分表實踐IDE資料庫
- MySQL 分庫分表方案,總結太全了。。MySql
- 讀寫分離 & 分庫分表 & 深度分頁
- 資料量大了一定要分表,分庫分表元件Sharding-JDBC入門與專案實戰元件JDBC
- 億級大表分庫分表實戰總結(萬字乾貨,實戰覆盤)
- 分庫分表中介軟體的高可用實踐
- SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分庫分表實踐Spring BootMyBatisMySqlJDBC
- 基於代理的資料庫分庫分表框架 Mycat實踐資料庫框架
- 分散式資料庫中介軟體 MyCat | 分庫分表實踐分散式資料庫
- MySQL:網際網路公司常用分庫分表方案彙總!MySql
- sharding-jdbc 分庫分表的 4種分片策略,還蠻簡單的JDBC
- 一文快速入門分庫分表中介軟體 Sharding-JDBC (必修課)JDBC
- IT開發工作分類【總結】
- 資料庫系列: 主流分庫分表中介軟體介紹(圖文總結)資料庫
- 分庫分表系列:分庫分表的前世今生
- 分庫分表神器 Sharding-JDBC,幾千萬的資料你不搞一下?JDBC
- MySQL:網際網路公司常用分庫分表方案彙總!(轉載)MySql
- 分庫分表
- 分庫分表(6)--- SpringBoot+ShardingSphere實現分表+ 讀寫分離Spring Boot
- Docker實現Mariadb分庫分表、讀寫分離Docker
- 分庫分表注意
- [Mysql]分庫分表MySql
- NetCore框架WTM的分表分庫實現NetCore框架
- 徹底搞清MySQL分庫分表(垂直分庫,垂直分表,水平分庫,水平分表)MySql
- sharding-jdbc分表場景下的分頁查詢最佳化JDBC
- 基因法分庫分表
- Mycat分庫分表(一)
- 常用分庫分表方案
- mycat配置分庫分表
- Mycat分庫分表配置
- sharding-jdbc5.0.0分表實踐JDBC