作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题
代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。码炫课堂的个人空间-码炫码哥个人主页-面试,源码等
释放21集全网最深ConcurrentHashMap的vip视频,复现每一行源码
回答
在进行水平分库分表后,我们可能会将一个类型的数据拆分到了多个库中的多个表中去了,比如对于订单表 t_order,为了用户端能够更加方便地查询他的订单,我们一般都会选择用户 id(uid)作为分库分表的键。虽然它方便了用户端查询,但是他给商户端和运营端带来了麻烦(不考虑其他架构的情况下),比如查询分页如何做?假如我们要执行下面这条 SQL 语句:
select * from t_order order by id asc limit 10,5; // 查询第三页的5条数据
为了更好地演示和理解,我们只将 t_order 表拆分为两个表:t_order_1、t_order_2,各自数据如下:
t_order_1 |
t_order_2 |
| 1808407589769134080 | 1808407602666618880 |
| 1808407595582439424 | 1808407608643502080 |
| 1808407623713636352 | 1808407616797229056 |
| 1808407629212368896 | 1808407635197640704 |
| 1808407641526845440 | 1808407642197934080 |
| 1808407645444325376 | 1808407658048208896 |
| 1808407652004216832 | 1808407658798989312 |
| 1808407653170233344 | 1808407661168771072 |
| 1808407672749244416 | 1808407666906578944 |
| 1808407687907459072 | 1808407680739393536 |
| 1808409387955322880 | 1808409393256923136 |
| 1808409394531991552 | 1808409401561645056 |

最低0.47元/天 解锁文章
638

被折叠的 条评论
为什么被折叠?



