Mycat生产实践---Mycat实施指南

1 Mycat项目实施步骤

首先,全面了解Mycat的能力、目前的限制、以及可能的解决办法,然后,在此基础上,考虑是否用Mycat的分表分片功能,根据目前业务的数据模型和数据访问模式,确定几个可能的分表方案,然后对方案进行针对性的性能测试,在性能数据的基础上,最终决定采用怎样的分片策略。
这里写图片描述
了解Mycat的能力,包括如下的方面:

  • Mycat的起源和解决的目标
  • Mycat在数据库中间件方面的独特功能和定位
  • Mycat的实际案例情况
  • Mycat的优点和不足
  • Mycat所提供的监控和测试工具
  • Mycat社区的动态

其中,关于分片规则的支持和扩展、多数据库支持、SQL拦截和注解、跨库Join、读写分离、缓存功能、高可用性等方面需要比较深入的学习和理解,有助于正确的使用Mycat来解决当前的业务问题。 接下来是分析当前业务,具体内容包括如下几个方面:

  • 数据模型:重点关注数据的增长模式(实时大量增长还是缓慢增长)和规律、数据之间的关联关系
  • 数据访问模式:通过抓取系统中实际执行的SQL,分析其频率、响应时间、对系统性能和功能的影响程度
  • 数据可靠性的要求:系统中不同数据表的可靠性要求,以及操作模式
  • 事务的要求:系统中哪些业务操作是严格事务的,哪些是普通事务或可以无事务的
  • 数据备份和恢复问题:目前的备份模式,对系统的压力等

数据的模型和访问模式在很大程度上决定了未来数据分片的模式,包括哪些表用全局表、哪些用ER分片、哪些用范围分片规则、哪些用一致性Hash或自定义方式。而数据可靠性的要求,则影响到Mycat后端是采用普通的MySQL主从还是用 Gluster多写模式,事务性要求需要相关的表或者SQL尽量不会垮分片执行,对于以后制定本项目的编程约束有重要意义。
分表方案则需要确定如下一些问题:

  • 哪些表要分片、什么分片规则、依赖关联关系如何解决
  • 数据迁移和扩容的手段

建议根据业务分析的结果,确定两套比较合适分表方案,然后进行性能测试,选出最佳的分表方案,性能测试可以采用Mycat自带的超级工具,此工具在前面提到过,可以模拟接近真实业务数据的数据,并随机制造大量的数据供测试,是目前开源的最佳数据库性能测试工具。
在最终进入开发之前,架构师还需要给出一个编程约束,需要明确列出不能执行的SQL语句,这些约束可能包括如下几种:

  • 跨越太多节点的查询语句
  • 不能Join的表和相关的Join SQL
  • 很影响性能的复杂SQL
  • 对比较大的表的SQL操作提示

最后在开发阶段,还应该做到如下几点

  • 一开始就按照最初的分片设计和数据规模,制造大量的随机数据,进行开发和测试,尽早发现性能问题
  • 对所有的SQL进行统计分析,找出异常的SQL,包括
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值