自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Mycat分片规则与数据分布不一致问题

Mycat作为数据库中间件,本身并不存储数据。Mycat通过其分片规则与读写规则,实现对后端众多mysql数据库实例的分布式访问。但是,在实际使用过程中,可能会出现实际的数据分布与分片规则不一致的情况。譬如:1. mysql可通过直连方式访问,这就有可能将任意数据写到任意的数据库实例中;2. Mycat后期调整分片规则时,前期已写入的数据与调整后的分片规则不一致;当Mycat的分片规则与实际的数据

2018-01-02 14:55:37 1887

原创 Mycat主键缓存机制

一、缓存机制说明Mycat通过schema.xml文件中的table标签primaryKey属性来指定逻辑表的主键。当分片规则使用非主键进行分片时,那么,根据主键查询时,mycat就会对所有该表配置的dataNode进行广播式的查询。为此,Mycat提供了“主键到分片”的内存缓存机制。Mycat的主键缓存机制是:当根据主键查询的SQL语句第一次执行时,Mycat会对其结果进行分析,确定该主键在哪个

2018-01-02 14:54:02 2421

原创 Mycat配置之一:schema.xml

一、概念与图示schema.xml配置的几个术语与其关系图示:二、schema 标签schema 标签用于定义 MyCat 实例中的逻辑库,如:name="USERDB" dataNode="dn1" checkSQLschema="false" sqlMaxLimit="100">1. name属性配置逻辑库的名字(

2017-12-25 11:23:18 3922 1

原创 Mycat实践之六:Mycat 目前存在的限制

摘自《Mycat权威指南》 部分 SQL 还不能很好的支持除了分片规则相同、 ER 分片、全局表、以及 SharedJoin,其他表之间的 Join 问题目前还没有很好的解决,需要自己编写 Catlet 来处理 不支持 Insert into 中不包括字段名的 SQL insert into x select from y 的 SQL,若 x 与 y 不是相同的分片规则,则不被支持

2017-12-25 11:17:08 4729

原创 Mycat实践之五:DataNode的分布问题

摘自《Mycat权威指南》 DataNode代表 MySQL 数据库上的一个 Database,因此一个分片表的 DataNode 的分布可能有以下几种:都在一个 DataHost 上在几个 DataHost 上,但有连续性,比如 dn1 到 dn5 在 Server1 上,dn6 到 dn10 在 Server2 上,依次类推 在几个 DataHost 上,但均匀分布,比

2017-12-25 11:16:01 2631

原创 Mycat实践之四:数据拆分原则

摘自《Mycat权威指南》 1. 达到一定数量级才拆分(800 万)2. 不到 800 万但跟大表(超 800 万的表)有关联查询的表也要拆分,在此称为大表关联表3. 大表关联表如何拆:小于 100 万的使用全局表;大于 100 万小于 800 万跟大表使用同样的拆分策略;无法跟大表使用相同规则的,可以考虑从 java 代码上分步骤查询,不用关联查询,或者破例使用全局表。4.

2017-12-25 11:14:50 932

原创 Mycat实践之三:后端数据库的选择方案

摘自《Mycat权威指南》 Mysql尽量用比较新的稳定版,当前来说5.6 和 5.7 都是比较靠谱的一个选择,因为 Mysq 这两个版本做了大量优化。另外 Mysql 的各种变种版本都可以考虑。以下是一些通用准则:对于非严格苛刻交易型的数据表,建议用 MariaDB,这个版本目前在开源界很盛行,评价很高。percona版本也值得推荐,percona 有很多辅助的运维工具。 对

2017-12-25 11:12:48 780

原创 Mycat实践之二:分表分库原则

摘自《Mycat权威指南》 分表分库虽然能解决大表对数据库系统的压力,但它并不是万能的,也有一些不利之处,因此首要问题是,分不分库,分哪些库,什么规则分,分多少分片。原则一:能不分就不分,1000 万以内的表,不建议分片,通过合适的索引,读写分离等方式,可以很好的解决性能问题。原则二:分片数量尽量少,分片尽量均匀分布在多个 DataHost 上,因为一个查询 SQL 跨分片越多

2017-12-25 11:09:08 2838

原创 Mycat实践之一:项目实施步骤

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

2017-12-25 11:00:15 706

转载 一致性哈希算法原理

一致性Hash算法背景  一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。  但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数

2017-12-22 17:36:25 153

转载 五分钟理解一致性哈希算法(consistent hashing)

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。     一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1

2017-12-22 17:09:39 157

转载 MySQL数据库水平分表策略--一致性hash

一致性hash算法缘起一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1.

2017-12-22 17:07:33 2553

转载 Mycat生产实践---数据迁移与扩容实践

1 离线扩容缩容工具目前从mycat1.6开始支持。 一、准备工作 1、mycat所在环境安装mysql客户端程序 2、mycat的lib目录下添加mysql的jdbc驱动包 3、对扩容缩容的表所有节点数据进行备份,以便迁移失败后的数据恢复 二、扩容缩容步骤 1、复制schema.xml、rule.xml并重命名为newSchema.xml、newRule.xml放

2017-12-22 17:06:12 910

转载 MyCat生产实践--一致性hash分片&扩容

1、 mycat一致性hash算法分片测试结果配置el_user_user_info表使用一致性hash算法进行分片。 schema.xmlmycat:schema xmlns:mycat="http://io.mycat/"> schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100">

2017-12-22 17:02:14 717

原创 mycat安装笔记

1. JDK由于 MyCAT 中使用了JDK7 中的一些特性,所以要求必须在JDK7 以上的版本上运行。2. mysql环境准备(1)在mysql中,创建2个实例,1个用户;3. 安装步骤(windows)(1)从官网下载最新版mycat,并解压到本地。(2)添加mycat主目录路径至path环境变量(3)安装服务:mycat install

2017-12-15 15:04:58 1455

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除