加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MyCat数据库的基础配置及使用

发布时间:2019-09-17 05:30:44 所属栏目:MySql教程 来源:宜信技术学院
导读:一、为什么需要分布式数据据库 随着计算机和信息技术的迅猛发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,动辄达到数百TB甚至数百PB的规模,已远远超出传统计算技术和信息系统的处理能力,集中式数据库面对大规模数据处理逐渐表

writeHost和readHost是读写的配置,一个dataHost内可以配置多个读和写。但如果writeHost指定的后端数据库宕机,那么这个writeHost绑定的所有readHost也将不可用;另一方面,MyCat会自动检测到writeHost宕机,并切换到备用的writeHost上。

七、MyCat分片

在MyCat中将表分为两种大的概念:数据量小且不需要做数据切分的表,称为非分片表;数据量大到单库性能、容量不足以支撑,数据需要通过水平切分均匀分布到不同的数据库中的表,称为分片表。而中间件最终需要处理的事情是对数据切分、聚合。

7.1 ER关系分片表

ER模型是实体关系模型,广泛采用概念模型设计方法,基本元素是实体、关系和属性。MyCat将它引入数据切分规则中,使得有互相依赖的表能够按照某一规则切分到相同的节点上,避免跨库Join关联查询。具体详情配置内容在这里不做描述请参考官方文档。

八、功能与优势

8.1 常用命令

  • MyCat提供类似数据管理监控方式,可以通过MySQL命令行登录管理端口(9066)执行相应的SQL语句进行管理,也可以通过JDBC方式进行远程连接管理。
  • Reload @@config命令用于更新配置文件运行该命令,不用重启即可进行配置文件更新。
  • Reload @@sqlstat用来关闭和开启SQL监控分析。
  • Show @@database命令用来显示MyCat数据库列表,运行结果对应schema.xml配置文件的schema子节点。
  • Show @@datanode用来显示MyCat数据节点,运行结果对应schema.xml配置文件的dataNode节点。
  • Show @@heartbeat用于报告心跳状态。
  • Show @@connection用来获取MyCat的前端连接状态。
  • Kill @@connection id,id,id 用来关闭连接。
  • Show @@ cache用来查看缓存。
  • Show @@datasource 用来查看数据源状态,如果配置了主从或多主,则可以切换。
  • Switch @@ datasource name:index 用于切换数据源。
  • Show @@syslog limit 用于显示系统日志。
  • Show @@sql 显示在MyCat中执行过的语句。
  • Show @@shl.show 显示慢SQL语句。
  • Show @@sql.sum 显示SQL语句的整体执行情况、读写比例等。

8.2 局限性

delete操作不支持没有主键的表。没有主键的表在不同节点的顺序不同,如果执行 select ...limit...,则将出现不同的结果集。

不支持XA事务,在提交上可能回滚。

由于集群是乐观的并发控件,事务commit可能在该阶段中止,所以如果有两个事务向集群中的不同节点的同一行写入并提交,则失败的节点将中止。对于集群级别的中止,集群返回死锁错误。

整个集群的写入吞吐量由最弱的节点限制,如果有一个节点变得缓慢,那么整个集群将变得缓慢。

集群内部按照id自增长机制写入数据,比如集群中有三台可能是3,6,9这样的递增。

8.3 与Sharding-JDBC对比Sharding-JDBC

MyCat是一个中间件的第三方应用,sharding-jdbc是一个jar包。 因为MyCat是单独部署,所以使用MyCat就像是访问数据库一样,而sharding-jdbc的逻辑都是需要在工程里写的。

如果只是单独应用可以使用轻量级的Sharding-JDBC,如果多个服务都需要操作数据库则使用MyCat更合适。因为用Sharding-JDBC需要在每一个工程里边都配置上相应的分片等逻辑,而MyCat只需要配置一份单独部署。

【编辑推荐】

  1. 一文看懂MySQL数据库LnnoDB崩溃恢复机制
  2. 超详细的MySQL数据库InnoDB崩溃恢复机制总结
  3. NoSQL究竟是什么?了解为什么NoSQL数据库不是传统数据库的对手
  4. 关于MySQL数据库清理binlog日志命令总结
  5. 如果你能面试的时候能回答这些MySQL数据库问题,月薪2万不是问题
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读