数据库分库分表

本文介绍了分库分表的核心思想,包括垂直分表、垂直分库、水平分表等策略,旨在解决大数据量下数据库性能下降的问题。强调了根据业务需求选择合适方案,以及在不同场景下的优缺点分析。
摘要由CSDN通过智能技术生成

1.分库分表的核心思想

本质:解决数据库表由于数据量过大导致数据库性能下降

实现方式:将独立的数据库分为若干个数据库,将大表分为若干个小表

最终目的:通过数据库的分库分表,减小数据库表的数据量,从而提升数据库的性能

2.分库分表的分类

2.1 垂直分表

        定义:将表按指定字段拆分为若干个小表,每张表储存部分字段

        优势:进行数据冷热分离,避免IO过度争抢减少表锁几率

        原则:冷热分离,将text(大文本),blob(图片,视频类)等拆分放入附表,将经常组合查询的列放一张表中,避免联表查询

        存在问题:所有数据存储在一台服务器中,竞争同意台服务器的cup,内存,IO,磁盘等

2.2 垂直分库(专库专用)

        定义:将表按照业务进行归类,不同表可以放在不同数据库中,不同的数据库可以部署在不同的服务器上。

        优势:不同表的进行业务聚合,数据库维护不同数据更加层次化,提高了一定的磁盘IO和数据库连接次数

        存在问题:没有解决单表中数据量过大的问题

2.3 水平分表

        定义:将表的数据按一定的规则分成若干个表,表的结构未发生改变

        优势:优化了单一表中数据量过大的问题;避免IO争抢减少表锁几率

        存在问题:没有解决单库数据库数据量过大问题

2.4 水平分库

        定义:水平分表的进一步拆分,讲表中的数据按照一定的规则拆分到不同数据库中,不同的数据库部署到不同的服务器上

        优势:解决了单库中数据量过大的问题及并发访问压力问题

        存在问题:同一张表被分配到不同数据库中,需进行额外的路由工作,提高了系统的复杂性

  2.5 分库分表总结

        一般来说,在系统设计阶段就应该根据业务耦合松紧来确定垂直分库,垂直分表方案。当然在数据量及访问压力不是特别大的情况,首先考虑缓存、读写分离、索引技术等方案。若数据量极大,且持续增长,再考虑水平分库水平分表方案

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值