一:概念
1、水平拆分:
水平分表:在同一个数据库内,把同一个表的数据按一定规则拆到多个表中。
水平分库:把同一个表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上。
2、垂直拆分:
垂直分表:将一个表按照字段分成多表,每个表存储其中一部分字段。
垂直分库:按照业务进行分类,分布到不同数据库上,每个库单独的服务器,达到专库专用。
一般来说,在系统设计阶段就应该根据业务耦合松紧来确定垂直分库,垂直分表方案,在数据量及访问压力不是特别大的情况,
首先考虑缓存、读写分离、索引技术等方案。
若数据量极大,且持续增长,再考虑水平分库水平分表方案。
可以使用数据库中间件来完成分库分表,常用的有:mycat、sharding-jdbc
网友评论