当前位置:首页 » 网络资讯 » 数据库怎样分库分表
扩展阅读
可以看下珠宝首诗的图片 2025-05-15 10:55:37
吃什么可以快速补血 2025-05-15 10:45:36
达人怎样添加优惠团购 2025-05-15 10:45:29

数据库怎样分库分表

发布时间: 2023-04-08 07:04:55

Ⅰ 给小白演示 分库分表案例

受群里小伙伴之邀,搞一个分库分表案例,这样让很多没用过分库分表的心里也有个底,不然永远看到的都是网上的各种概念和解决方案性的文章。

由于用户表过岩兆察于庞大,采取相关SQL优化,还是不能满足,所以现对其进行做分库分表。

数据库: my-sharding

数据库表: t_user

建表语句如下:

关于数据库分库分表通常有两种方案:

下面我们来演示水平拆分,大致思路:

加入有2000万条数据,那么为了方便演示,我们就暂定分为五个库,每个数据库对应五个表。

五个数据库:

每个数据库有五张表:

建表语句如下:

使用技术栈: JDK8 + MySQL + Spring Boot + Mybatis + Shardingsphere + Druid

maven 相关依赖:

配置文件相关配置如下:

分库分表的两个分片类:

下面是业务部分代码,先看 UserMapper.xml 内容:

UserMapper 接口:

为了更好地演示,我这里加入了 controller 层和 service 层,这也是大家平常开发套路。

service 层代码如下:

controller层代码如下:

最后是项目的启动类:

启动项目,启动成功:

下面我们来演示一下新增数据和查询。

先来添加数据到数据库中,这里使用的是IDEA中restful工具:

后台日志:

再查看数据库表中:

到此,我们的数据依旧落库,下面我们猜棚来演示一下数据查询。

浏览器里输入:

返回数据:

后台日志:

从日志和返回结果可以看出,已经为我们正确的选择到对应的数据库和表了,这样,一个分库分表的查询就成功了。

本文没有太多的概念,直接使用案例演粗茄示。相关概念性的文章,还有分库分表解决方案的文章,网上一堆堆的,感兴趣可以自行查阅。