MySQL系列--分库分表

其他网址

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】

  1. 创建表:两张表有一个取值相同的字段id:字段名可相同,也可不同,但字段值要相同;以此确定两张表中的一条数据,
  2. 查询时:第1 张表 Table1  左外连接(Left  Outer Join ) 第2 张表 Table2  on Table1.id = Table2.id 
  3. 新增时,判断字段属于哪一个表,根据字段所属表,将数据插入到对应表内。
    (1)、要插入的数据 ,全部封装在 一个  PG内(我自己代码里写的一个键值对 Map,键:字段名,值:字段值) 
    (2)、在 Mapper 内明确好 每个表的表名,所包含的字段
    (3)、拼接好 每个表 新增数据的 SQL语句
    (4)、PG 传入后,自动匹配字段,从而自动插入到不同的表

=============================分割线==============================    
另一个需求:由于我的数据是分批上传,需要保留每一批上传数据的历史记录,因此::

  1. 在两个表内 都增加一个 “recordid” 字段,每一批数据一个唯一的 recordid (实质上只需要第一个表有这个字段就行,两个表数据根据相同的 ID 关联 ,这里第二个表也存了recordid,有数据冗余,只是感觉到以后会用到)。
  2. 新增一个 record 表,表内至少有一个 recordid 字段,create_time 字段,  还有其他业务的自定义字段,保存每次上传信息。
  3. 查询上传记录时,首先查询  record 表,再从  record 表 内提取 recordid  去数据表内查询 该批次数据。

原来没有分库分表,后期如何分库分表?

现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表**动态切换**到分库分表上? - 简书

分库分表的全局ID如何维护一致性?

Sharding-jdbc分库分表实例

其他网址:

sharding-jdbc之——分库分表实例_数据库_冰河的专栏-CSDN博客

springboot+jpa分库分表项目实例 - 森林木马 - 博客园

Sharding-JDBC分库分表从入门到精通-10-综合案例-数据库设计-传智的在线视频教程-CSDN学院

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章