mycat分表擴充套件之全域性序列 資料庫方式

2022-09-08 05:54:12 字數 2237 閱讀 3234

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 協議...