个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~
单数据库存在问题
:
随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:
IO瓶颈
:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。请求数据太多,带宽不够,网络IO瓶颈。CPU瓶颈
:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。分库分表的中心思想都是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。
分库分表 的 拆分方式
:
垂直分库
:
垂直分表
:
水平分库
:
水平分表
:
shardingJDBC
:
shardingJDBC技术 基于AOP原理,在应用程序中对本地执行的SQL进行拦截,解析、改写、路由处理。需要自行编码配实现,只支持java语言,性能较高。
MyCat
:
MyCat 是数据库分库分表中间件,不用调整代码即可实现分库分表,支持多种语言,性能不及shardingJDBC技术。
MyCat
:
MyCat是一个开源的、活跃的、分布式的数据库中间件 ,可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。MyCat中间件主要用于在大型数据库应用中实现数据库的分片和读写分离。它支持MySQL和MariaDB,并提供了水平分片、垂直分片、分布式事务等功能。以下是MyCat中间件的一些主要特点和功能:
MyCat中间件为大型数据库应用提供了灵活性、可扩展性和高性能,使得应用程序能够更好地应对大规模数据存储和访问的挑战。
MyCat的优势
:
MyCat 核心概念
: