一、mycat介绍
一、背景
随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。
当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到1000万以上就需要分库分表来缓解单库(表)的压力。
二、mycat原理
可以用拦截形容,它拦截了用户发送过来的SQL语句,首先对sql语句做了一些特定的分析,如分片分析,路由分析,读写分析,读写分离分析,缓存分析等,然后将此sql发送后端的真是数据库,并将反馈的结果做适当的处理,最终返回给用户
三、mycat介绍
•一个用于MySQL读写分离和与数据切分的高可用中间件
•一个模拟为MySQLServer的超级数据库代理
•一个能平滑扩展支持1000亿大表的分布式数据库系统 (普通单表1kw以下)
•一个可管控多种关系数据库的数据库路由器
•一个彻底开源的,面向企业应用开发的大数据库集群
• 支持事务、ACID、可以替代MySQL的加强版数据库
•一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
•一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
• 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
•一个新颖的数据库中间件产品
四、什么是分库分表
简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。
数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数
据的水平(横向)切分。
垂直切分的最大特点就是规则简单,实施也更为方便,尤其适合各业务之间的耦合度非常低,相互影响很小,业务逻辑非常清晰的系统。在这种系统中,可以很容易做到将不同业务模块所使用的表分拆到不同的数据库中。根据不同的表来进行拆分,对应用程序的影响也更小,拆分规则也会比较简单清晰。
水平切分于垂直切分相比,相对来说稍微复杂一些。因为要将同一个表中的不同数据拆分到不同的数据库中,对于应用程序来说,拆分规则本身就较根据表名来拆分更为复杂,后期的数据维护也会更为复杂一些。
五、分片介绍
5.1垂直切片
将不同的表切分到不同的数据库中
5.2水平切片
将同一类型表按照分片条件切分到不同的数据库中(常用)
六、配置文件
mycat主要有3个配置文件,rule.xml,schema.xml和server.xml,这主要对这3个文件作讲解
七、 关键特性
-遵守Mysql原生协议,跨语言,跨数据库的通用中间件代理。
-基于心跳的自动故障切换,支持读写分离,支持MySQL一双主多从,以及一主多从
-有效管理数据源连接,基于数据分库,而不是分表的模式。
-基于Nio实现,有效管理线程,高并发问题。
-支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数。
-支持2表join,甚至基于caltlet的多表join。
-支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
-支持多租户方案。-支持分布式事务(弱xa)
-支持全局序列号,解决分布式下的主键生成问题。
-分片规则丰富,插件化开发,易于扩展。
-强大的web,命令行监控。
-支持前端作为mysq通用代理,后端JDBC方式支持Oracle、DB2、SQL Server、mongodb、巨杉。
-集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。
八、安装
官网下载: http://www.mycat.io/
下载后解压,进入mycat\bin 目录
双击启动 startup_nowrap.bat
一、mycat介绍的更多相关文章
- MYCAT介绍(转)
从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个M ...
- MYCAT介绍
为什么需要MyCat? http://www.mycat.org.cn/ http://www.csdn.net/article/2015-07-16/2825228
- MyCat 介绍、分片规则、调优的内容收集
一.MyCat的简介 MyCat高可用.负载均衡架构图: 详细知识点: MySQL分布式集群之MyCAT(一)简介(修正) 二.MyCat的schema.xml讲解 详细知识点:MySQL分布式集群 ...
- Mycat 介绍
Mycat 是什么 Mycat是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了 MySQL协议的的Server,前端用户可以把它看作是一个数据库代理,用 MySQL客户端工具和命 ...
- mycat入门教程
github https://github.com/MyCATApache/Mycat-Server myCat介绍 myCat的诞生,要从其前身Amoeba和Cobar说起. Amoeba(变形虫) ...
- MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解
MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Mycat介绍 1>.什么是Mycat Mycat背后是 ...
- [待完善]mycat分布式架构部署
mycat介绍:http://mycat.org.cn/ mycat分布式架构部署
- JAVAEE——宜立方商城13:Mycat数据库分片、主从复制、读写分离、100%Linux中成功安装Mysql的方法
1 海量数据的存储问题 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL ...
- JAVAEE——宜立方商城13:订单系统实现、订单生成、Mycat数据库分片
1. 学习计划 1.订单系统实现 2.订单生成 3.Mycat数据库分片 2. 订单系统 2.1. 功能分析 1.在购物车页面点击“去结算”按钮,跳转到订单确认页面 a) 必须要求用户登录 b) 使用 ...
随机推荐
- 提名者周训,misc消失的文件
下载附件是一个没有后缀的文件,一般这种东西,根据我这个菜狗的经验,直接就是丢进kali的binwalk一顿操作,最后果不其然,是发现了东西的 这里面可以看到一个小细节,就是在binwalk进行分离的时 ...
- [旧][Android] View 工作原理(一)
备注 原发表于2016.05.23,资料已过时,仅作备份,谨慎参考 前言 本文参考<Android 开发艺术探索>及网上各种资料进行撰写,目的是为自己理清 Android 中 View 的 ...
- 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类
Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...
- Java常用--反射
反射的意义 你可能说,平时都是业务的增删查改基本用不到反射.但是如果你学会用反射了,可以减少重复代码,非常的好用. 反射是Java语言的一大特性,允许动态的修改程序行为. 代码说反射 1.反射的三个入 ...
- Python:wordcloud
wordcloud官方文档 1.简介 wordcloud是优秀的词云展示的第三方库 2.导入模块 import wordcloud 3.wordcloud对象初始化 以下参数值均为官方文档给出的默认值 ...
- java复习面向对象(二)
java复习面向对象(二) 1.static关键字 举例图片 静态变量 使用static修饰的成员变量是静态变量 如果一个成员变量使用了关键字static,那么这个变量不属于对象自己,而属于所在的类多 ...
- 对SQL中游标的认识
游标用于按顺序遍历结果集.但一般情况下,应尽量避免使用游标.原因: 1. 游标违背了关系模型,即按集合来考虑问题的思想: 2. 游标逐行对纪录进行操作,会带来额外的开销,使用游标的解决方案通常比使用集 ...
- 【笔记】封神榜游戏设计VR
一.添加怪物(这个教程的鬼兵我可以用)1.设置怪物出生点.2.创建一个新脚本-CreateMonster,写好脚本之后放到3个传送门上.3.然后添加完成后,给三个添加Audio Source组件4.可 ...
- Netty学习(二)使用及执行流程
Netty简单使用 1.本文先介绍一下 server 的 demo 2.(重点是这个)根据代码跟踪一下 Netty 的一些执行流程 和 事件传递的 pipeline. 首先到官网看一下Netty Se ...
- 基于python 实现冒泡排序算法
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/17 14:42 # @Author : gylhaut # @Site ...