Java性能优化:架构设计-分库分表设计

本文探讨了面对大数据量时,如何通过分库分表来优化Java应用的性能。介绍了分库分表的原因,如单表数据量过大导致性能下降,并列举了常用的分库分表中间件,如TDDL、DRDS、Sharding-JDBC、MyCAT等,分析了它们的优缺点。此外,还讨论了垂直拆分和水平拆分的策略以及实际应用中的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分库分表设计

 

一、前言

美团外卖,每天都是几千万的订单,淘宝的历史订单总量应该百亿,甚至千亿级别,这些海量数据远不是一张表能Hold住的。事实上MySQL单表可以存储10亿级数据,只是这时候性能比较差,业界公认MySQL单表容量在1KW量级是最佳状态,因为这时它的BTREE索引树高在3~5之间。那如何解决这一问题呢?分库分表中间件有哪些以及各自的优缺点等,本小节将简单介绍下。

二、问题答疑

2.1、为什么要分库分表?

如前言中的例子,公司业务发展越好,用户就越多,数据量越大,请求量越大,单个数据库就会扛不住,此时就会采用相应的策略解决该场景

  1. 分区;

  2. 分库分表;

  3. NoSQL/NewSQL;

说明:只分库,或者只分表,或者分库分表融合方案都统一认为是分库分表方案,因为分库,或者分表只是一种特殊的分库分表而已。NoSQL比较具有代表性的是MongoDB,es。NewSQL比较具有代表性的是TiDB。

目前绝大部分公司的核心数据都是:以RDBMS存储为主(关系数据库管理系统),NoSQL/NewSQL存储为辅

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师速成记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值