码迷,mamicode.com
首页 > 数据库 > 详细

mysql的分库分表

时间:2018-04-25 20:08:33      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:10个   user   节点   分片   如何   中间件   返回   机器   个数   

1 什么是分库分表

这里讨论的情况是一台机器上对应一个数据库。

分库的对象是表,分表的对象是行。分库是说把属于同一个模块的相关性很高的表放在同一个数据库中。分表是说把同一个表的的行分成多个子表,把各个子表放在各自的数据库中。

2 分库分表的例子

2.1 垂直划分

现在订单数据库里面有订单表和订单售后表,前者是事实性的,后者不需要实时性,因此将它们放在两个数据库中,一个数据库中放订单表,另外一个数据库中放订单售后表。

2.2 水平划分

例如用户订单数据库,每个用户有一个唯一的user id。

假如我们现在把用户订单数据库水平划分为10个数据库,那么就是把user id%10,这样,模为0的行放在第一数据库中,模为1的行放在第二个数据库中,依次类推。

3 如何实现分库分表的事务

 

4 如何实现跨分片排序分页

在分片前,按照id进行排序,分片之后,也想要按照id排序返回,如何实现?

 

5 跨节点join

6 mysql的分裤分片中间件

mycat

在mycat上,用户使用sql时可以像对待单个数据库来使用。

比如mycat支持跨节点join等,mycat支持事务,实现了acid。

mycat不适用的场景:

分页排序等

https://blog.csdn.net/u013235478/article/details/53178657

 

mysql的分库分表

标签:10个   user   节点   分片   如何   中间件   返回   机器   个数   

原文地址:https://www.cnblogs.com/hustdc/p/8946474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!