1. MyCat的使用-rule
(1) <tableRule>的作用是什么?
指定使用的分片算法
(2) <tableRule>中name属性的作用是什么?
name 属性指定唯一的名字,用于标识不同的分片规则。内嵌的 rule 标签则指定对物理表中的哪一列进行拆分和使用什么分算法
(3) <tableRule>中columns属性的作用是什么?
指定要拆分的列名字
(4) <tableRule>中algorithm属性的作用是什么?
使用 function 标签中的 name 属性。连接表规则和具体分片算法。 table 标签内使用。让逻辑表使用这个规则进行分片
(5) <function>的作用是什么?
定义分片算法
(6) <function>中name属性的作用是什么?
name 指定算法的名字
(7) <function>中class属性的作用是什么?
class 制定分片算法具体的类名字
(8) <function>中property属性的作用是什么?
property 为具体算法需要用到的一些属性
2. MyCat的使用-配置读写分离
(1) 如何在MyCat中配置读写分离?
3. MyCat的使用-分片规则
(1) auto-sharding-long的分片规则是什么?
以 500 万为单位,实现分片规则.
逻辑库 A 对应 dataNode - db1 和 db2. 1-500 万保存在 db1 中, 500 万零 1 到 1000 万保存在 db2 中,1000 万零 1 到 1500 万保存在 db1 中.依次类推.
(2) crc32slot的分片规则是什么?
在 CRUD 操作时,根据具体数据的 crc32 算法计算,数据应该保存在哪一个 dataNode 中
(3) 在配置分片规则时需要注意什么?
1)<columns>id</columns>中推荐配置主键列
2)所有的 tableRule 只能使用一次。如果需要为多个表配置相同的分片规则,那么需要在此重新定义该规则。
3)在 crc32Slot 算法中的分片数量一旦给定,MyCat 会将该分片数量和 slor 的取值范围保存到文件中。在次修改分片数量时是不会生效的,需要将该文件删除。文件位置位于 conf目录中的 ruledata 目录中。
4. MyCat的使用-测试分库
(1) 在使用MyCat分库时需要注意什么?
1)使用 MyCat 实现分库时,先在 MyCat 中定义逻辑库与逻辑表,然后在 MyCat 的链接中执行创建表的命令必须要在 MyCat 中运行。因为 MyCat 在创建表时,会在表中添加一个新的列,列名为_slot。
2)使用 MyCat 插入数据时,语句中必须要指定所有的列。即便是一个完全项插入也不允许省略列名。
(2) 如何在MyCat中配置分库?