mycat
一、海量数据的存储问题
随着互联网的发展,数据的量级也是成指数的增长,对数据的操作也是越加的困难,传统的关系型数据库已经无法满足快速查询与插入数据的需求。这个时候 NoSQL 的出现在暂时解决了这一危机。他通过降低数据的安全性,减少对事务的支持,减少复杂查询的支持,来获取性能上的提升。
但是,一些场合 NoSQL 也是无法满足的。就比如某些场景是绝对要有事务和安全指标的。这个时候 NoSQL 肯定是无法满足的,所以还是需要使用关系型数据库。如果使用关系型数据库解决海量数据存储的问题,就需要做数据库集群。
二、什么是数据库分片
简单来说,就是指通过某种特定的条件,将我们存放在同一数据库中的数据分散存放到多个数据库中,以达到负载的效果。
1、按照不同的表来切分到不同的数据库上,这种被称为垂直切分
2、根据表中数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库上面,这种切分称之为数据的水平切分
三、如何实现数据库分片
当数据库分片后,数据由一个数据库分散到多个数据库中。此时系统做查询时需要切换不同的数据库。那么系统如何知道要查询的数据在哪个数据库中呢?要添加一条数据时需要向哪个数据库中添加呢?这些问题处理起来都是非常麻烦的。
这种情况下可以使用一个数据库中间件 mycat 来解决相关问题。
四、什么是 mycat
简单的说,MyCAT就是:
一个彻底开源的,面向企业应用开发的“大数据库集群”
支持事务、ACID、可以替代Mysql的加强版数据库
一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群
一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server
结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
一个新颖的数据库中间件产品,提供高可用性数据分片集群。你可以像使用 mysql 一样使用个 mycat 。对于开发人员来说根本感受不到 mycat 的存在
MyCAT的目标是:低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。