概述:通过三个问题的解答来哦概述
问题一:mycat通过配置之后,是否就能完全解决分库分表和读写分离问题呢?
mycat配合数据库本身的复制功能,可以解决读写分离问题
但是针对分库分表的问题,并不能完美的解决。迄今为止,业界并没有出现完美的解决方案,
mycat支持两张表连表联查,多于两张表的联查并不支持。
分析哪些表放进一个数据库服务器中,哪些没有关联的数据库的单表放进另外一个数据库中
其实,很多数据库中间件关于分库分表之后的查询问题,都是需要自己实现的
而且基本上不支持连表联查,mycat在业界属于一款很优秀的产品。
需要数据库工程师合理的设计数据库结构来避免发生这种问题。
问题二:mycat除了支持mysql,他还支持哪些数据库,哪些平台呢?
官方介绍,支持的数据库除了mysql之外,还包括SQL Server、Oracle、DB2、PostgreSQL等主流数据库,
官方介绍,尽量使用mysql 以为mycat最初设计出来就是为了优化mysql
mycat除了可以运行在Java平台上,还可以运行在.net、PHP等平台上。
mycat带来的最大的好处是使用时可以不用修改原有的代码
分库分表实现物理分离,通过mycat实现逻辑连接。
mycat通过命令启动后,你只需要将数据库的连接切换到mycat连接地址(mycat所在的服务器ip)即可 ,
写法上和其他数据库没有区别 如: jdbc:mysql://mycat服务器ip地址:8066/数据库名
除了url地址稍有不同,用户名和密码使用时完全一样
问题三:如果启动mycat失败了,怎么办?
第一时间打开logs目录 查找这两个文件:wrapper.log mycat.log
wrapper.log日志文件:程序启动时的日志
mycat.log日志文件:脚本执行时的日志,SQL脚本执行报错后的具体错误内容,历史日志会根据时间生成目录记录下来
一般情况下,启动失败,都是配置错误。
导读
在系统 开发中,数据库是非常重要的一个点
如:SQL优化,代码优化,数据库结构本身优化,主从复制,热备、分库分表、读写分离等都是在系统开发中迟早会面临的技术问题?
mycat就是一款优秀的分布式数据库中间件。能很好的为解决这些问题做出调整
什么是Mycat
mycat 是一个彻底开源的,面向企业应用开发的“大数据库集群”
支持事务,ACID、可以替代mysql的一种加强版数据库
一个 可以视为“mysql”集群的企业级数据库,用来替代昂贵的Oracle集群
一个融合了内存缓存技术,NOSQL技术,HDFS大数据的新型SQL Server
结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品。
一个新颖的数据库服务中间件产品。
mycat关键特征:支持跨数据库的分页操作
mycat的关键特性:
支持SQL92标准
支持SQL Server 、Oracle、DB2、Mysql、PostgreSQL等DB常见的SQL语法 DB就是指代数据库
遵从mysql原生协议,跨语言、跨平台,跨数据库的通用服务中间件代理。
基于心跳的自动故障切换,支持读写分离,支持mysql主从复制,以及集群
基于NIO(Non Blocking IO) 非阻塞IO技术实现的,有效管理线程,可以解决高并发的相关问题。
支持数据库的多片自动路由与聚合、支持sum、count、max等常用聚合函数
支持跨数据库分页操作