ShardingJDBC学习笔记

【ShardingJDBC DEMO代码】

分库分表需要考虑的问题

  • 怎么保证主键唯一?

  • 进行查询的时候怎么知道要查哪张表呢

  • 插入数据的时候怎么知道要插入哪一张表呢

  • 数据如果来自多张相同的表,该怎么分页呢

    • 查出数据后需要在内存分页
  • 垂直分库分成了几个数据库,代码上怎么配置数据库信息才能做到A业务去A库,B业务去B库

    • 配置好逻辑表,在sql中指定对逻辑表即可
  • 事务一致性问题

    • 从代码层面解决
  • 可以在同个服务器不同库搭建主从复制吗

    • 一台服务器上需要启动多个服务,不同端口
  • 能否在读写分离的基础上,创建多个主库呢

  • 如果有多张表需要每个表都要配置吗

分库分表操作

  • 垂直(在设计表结构的时候要就考虑)

    • 分表:把字段很多的表拆分成两个表,一个表放常用字段,另一个表放不常用的,减少对不常用表的数据的操作

    • 分库:根据业务来划分多个数据库,比如用户业务放在用户数据库,订单业务放在订单数据库

  • 水平(在优化SQL,代码后数据量仍在大量增长时考虑)

    • 分表:在同一数据库中,把一张表的数据分成多张表来存储

    • 分库:把一张表的数据分开放在多个数据库里

遇到的问题

  • 数据库主键ID的字段要设计为bigint长度大于18位,因为雪花算法自动生成的ID是十八位数字
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容