mycat系列-Mycat Catlet
MyCAT支持的Catlet实现
通过catlet支持跨分片复杂SQL实现以及存储过程支持等。使用方式主要通过mycat注释的方式来执行,如下:
1. 跨分片联合查询注解支持:
/*!mycat:catlet=demo.catlets.ShareJoin / select bu.,sg.* from base_user bu,sam_glucose sg where bu.id_=sg.user_id;
注:sam_glucose 是跨分片表;
2. 存储过程注解支持:
/*!mycat: sql=select * from base_user where id_=1;*/ CALL proc_test();
注:目前执行存储过程通过mycat注解的方式执行,注意需要把存储过程中的sql写到注解中;
3. 批量插入与ID自增长结合的支持:
/*!mycat:catlet=demo.catlets.BatchInsertSequence */ insert into sam_test(name_) values(‘t1’),(‘t2’);
注: 此方式不需要在sql语句中显示的设置主键字段,程序在后台根据primaryKey配置的主键列,自动生成主键的sequence值并替换原sql中相关的列和值;
4. 获取批量sequence值的支持:
/*!mycat:catlet=demo.catlets.BatchGetSequence */SELECT mycat_get_seq(‘MYCAT_TEST’,100);
注:此方法表示获取MYCAT_TEST表的100个sequence值,例如当前MYCAT_TEST表的最大sequence值为5000,则通过此方式返回的是5001,同时更新数据库中的MYCAT_TEST表的最大sequence值为5100.