1.在dn1上建庫序列指令碼
#在 dn1 上建立全域性序列表
create table mycat_sequence (name varchar(50) not null,current_value int not
null,increment int not null default 100, primary key(name)) engine=innodb;
#建立全域性序列所需函式
delimiter $$
create function mycat_seq_currval(seq_name varchar(50)) returns varchar(64)
deterministic
begin
declare retval varchar(64);
set retval="-999999999,null";
select concat(cast(current_value as char),",",cast(increment as char)) into retval from
mycat_sequence where name = seq_name;
return retval;
end $$
delimiter ;
delimiter $$
create function mycat_seq_setval(seq_name varchar(50),value integer) returns
varchar(64)
deterministic
begin
update mycat_sequence
set current_value = value
where name = seq_name;
return mycat_seq_currval(seq_name);
end $$
delimiter ;
delimiter $$
create function mycat_seq_nextval(seq_name varchar(50)) returns varchar(64)
deterministic
begin
update mycat_sequence
set current_value = current_value + increment where name = seq_name;
return mycat_seq_currval(seq_name);
end $$
delimiter ;
#初始化序列表記錄
insert into mycat_sequence(name,current_value,increment) values ('orders', 400000,
100);
#查詢序列化插入結果
mysql> select * from mycat_sequence;
+--------+---------------+-----------+
| name | current_value | increment |
+--------+---------------+-----------+
| orders | 400000 | 100 |
+--------+---------------+-----------+
2.修改 sequence_db_conf.properties
vim sequence_db_conf.properties
#意思是 orders這個序列在dn1這個節點上,具體dn1節點是哪台機子,請參考schema.xml
3.修改 server.xm
1
4.驗證全域性序列
insert into orders(id,amount,customer_id,order_type) values(next value for
mycatseq_orders,1000,101,102);
#查詢資料
select * from orders;
重啟mycat後,再次插入資料,再查詢
Mycat 分表擴充套件之全域性序列
在實現分庫分表的情況下,資料庫自增主鍵已無法保證自增主鍵的全域性唯一。為此,mycat提供了以下幾種解決方式 一 本地檔案 比方式mycat將sequence配置到檔案中,當使用到sequence中的配置後,mycat會更下classpath中的sequence conf.properties檔案中...
Mycat 資料庫分庫分表中介軟體
mycat 國內最活躍的 效能最好的開源資料庫中介軟體!我們致力於開發高效能的開源中介軟體而努力!實體書mycat權威指南 開源投票支援mycat start 基於阿里開源的cobar產品而研發,cobar的穩定性 可靠性 優秀的架構和效能以及眾多成熟的使用案例使得mycat一開始就擁有乙個很好的起...
資料庫分庫分表中介軟體 Mycat
1.1mycat概述 從定義和分類來看,它是乙個開源的分布式資料庫系統,是乙個實現了 mysql 協議的server,前端使用者可以把它看作是乙個資料庫 用 mysql 客戶端工具和命令列訪問,而其後端可以用mysql 原生 native 協議與多個 mysql 伺服器通訊,也可以用 jdbc 協議...