什么是分库分表

  • 分库分表方案是对关系型数据库数据存储和访问机制的一种补充。
  • 分库:将一个库的数据拆分到多个相同的库中,访问的时候访问一个库
  • 分表:把一个表的数据放到多个表中,操作对应的某个表就行

Ep_MySQL基础-分库分表_java

(1) 数据库垂直拆分

  根据业务拆分,如图,电商系统,拆分成订单库,会员库,商品库

Ep_MySQL基础-分库分表_面试_02

(2) 数据库水平拆分

  按会员库拆分,拆分成会员1库,会员2库,以userId拆分,userId尾号0-5为1库 6-9为2库,还有其他方式,进行取模,偶数放到1库,奇数放到2库

 

Ep_MySQL基础-分库分表_mysql面试题_03

(3) 表水平拆分

  如图把users表拆分成users1表和users2表,以userId拆分,进行取模,偶数放到users1表,奇数放到users2表

Ep_MySQL基础-分库分表_张无忌的面试宝典_04

(4)表垂直拆分

  根据业务去拆分表,如图,把user表拆分成user_base表和user_info表,use_base负责存储登录,user_info负责存储基本用户信息

Ep_MySQL基础-分库分表_分库分表_05

分库分表带来的问题

  • - 分布式事务 - 跨库join查询 - 分布式全局唯一id - 开发成本 对程序员要求高

分库分表技术如何选型

  • jdbc 直连层:shardingsphere、tddl
  • proxy 代理层:mycat

Ep_MySQL基础-分库分表_分库分表_06


Ep_MySQL基础-分库分表_mysql面试题_07

点我进入

面试宝典

Ep_MySQL基础-分库分表_java_08

 很多人不知道面试问什么,或者其他的XXGuide,那里边的太多没用的,也没有源码解析,都靠自己悟, 不懂得还是不懂,没人讲解, 所以面试宝典来了,阿里P7亲自录制 


目录:

Ep_MySQL基础-分库分表_张无忌的面试宝典_09

每一个专题都是 基础+面试题

--基础阶段剖析了很多源码比如Spring的 LongAdder ConcurrentHashMap源码 ThreadLocal源码 AQS SpringBoot等等。。。

Ep_MySQL基础-分库分表_java_10

享受服务:

购买后请私我

1.如何学习才能拿到Offer,加好友立马规划

2.基础知识+最全面试题视频解析

3.公司内推

4.简历修改

5.1V1VX永久答疑,一辈子的朋友

6.模拟面试1次

7.入职公司后第一个任务 技术方案指导

入职后技术方案编写答疑

Ep_MySQL基础-分库分表_面试_11

学习过程中改bug截图:

Ep_MySQL基础-分库分表_分库分表_12

课件分为:
   分为 【张无忌的面试宝典】-Java校招·实习【上】 + 【张无忌的面试宝典】-Java校招·实习【下】+【张无忌的面试宝典】-Java校招·实习【补充】

我已经带过太多学生,大厂,国企,中厂都有过,比如最近带的一个学生,在秋招中签了国企,秀下Offer

 

Ep_MySQL基础-分库分表_分库分表_13