网站建设方案书生鲜,WordPress程序主题转为app,263邮箱,直播网站如何做分库分表
分库#xff1a;将数据库中的数据分散到不同数据库上#xff0c;可以垂直分库和水平分库。
1.垂直分库#xff1a;把单一的数据按照业务进行划分#xff0c;不同的业务使用不同的数据库#xff0c;进而将一个数据库的压力分散到多个数据库。
2.水平分库#…分库分表
分库将数据库中的数据分散到不同数据库上可以垂直分库和水平分库。
1.垂直分库把单一的数据按照业务进行划分不同的业务使用不同的数据库进而将一个数据库的压力分散到多个数据库。
2.水平分库将同一个表按照一定规则拆分到不同的数据库中每个库可以位于的服务器上实现了水平扩展解决了单表存储和性能瓶颈的问题。 分表对单表进行拆分可以垂直拆分和水平拆分。
1.垂直拆分对数据表列的拆分把一张字段比较多的拆分成多张表。
比如将用户表中的一些信息单独抽出来形成一张表。
2.水平分表对数据表行的拆分将一张行数太多的表拆分为多张表解决单一表数据量过大的问题。 使用情况
1.单表数据量达到千万以上数据库读写速度降低
2.数据库中数据占用空间越来越大备份时间越来越长
3.应用的并发量太大
带来的问题
1.无法使用join同一个表分布在不同数据库中无法使用join只能手动操作查询到一个数据后再由此数据查询其他数据。
2.事务问题单个表在不同的数据库中单个操作设计多个数据库数据库自带的事务已经无法满足我们的要求
3.分布式id在分库之后数据分布在各个数据库中数据库的自增主键已经无法满足生成的主键唯一。此时需要引入分布式id。
Apache ShardingSphere 是一款分布式的数据库生态系统 可以将任意数据库转换为分布式数据库并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。