W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用序列號的分片表,對應(yīng)的自增主鍵要在建表SQL中體現(xiàn)
例如
`id` bigint NOT NULL AUTO_INCREMENT
2021-8-17后支持autoIncrement
屬性強制關(guān)閉全局序列號
"xxx":{
"createTableSQL":"xxx",
"autoIncrement": false,
"function":{
"clazz":"io.mycat.router.mycat1xfunction.PartitionByMod",
"name":"PartitionByMod",
"properties":{
"defaultNode":"0",
"type":"Integer",
"count":4,
"columnName":"id"
},
"ranges":{}
},
"partition":{
"schemaNames":"xxxx",
"tableNames":"xxxx_$0-3",
"targetNames":"prototype"
}
},
如果不需要使用mycat的自增序列,而使用mysql本身的自增主鍵的功能,需要在配置中更改對應(yīng)的建表sql,不設(shè)置AUTO_INCREMENT
關(guān)鍵字,這樣,mycat就不認為這個表有自增主鍵的功能,就不會使用mycat的全局序列號.
這樣,對應(yīng)的插入sql在mysql處理,由mysql的自增主鍵功能補全自增值.
建表sql可以自動在原型庫對應(yīng)的邏輯表的物理表獲取,如果邏輯表的建表SQL與物理表的建表SQL不對應(yīng),則需要在配置文件中配置建表SQL.
{數(shù)據(jù)庫名字}_{表名字}.sequence.json放置在sequecnes
文件夾下面
{
"clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator",
"name":"db1_travelrecord"
}
如果不配置,分片表使用雪花算法生成全局序列號
io.mycat.plug.sequence.SequenceMySQLGenerator
{
"clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator",
"name":"db1_travelrecord"
}
在prototype
服務(wù)器的db1
庫導(dǎo)入dbseq.sql
文件
在mycat_sequence
表建立db1_travelrecord
行,即可,Mycat會從更新此行獲得序列號
注意庫名對應(yīng)這里db1_travelrecord
中的db1
就是dbseq.sql
導(dǎo)入的庫(物理庫,一般是原型庫,不能在mycat里執(zhí)行)
可選參數(shù)targetName
更改序列號服務(wù)器
{
"clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator",
"name":"db1_travelrecord",
"targetName": "prototype",
"schemaName":"db1"http://指定物理庫名
}
?"targetName"
:"prototype"
是執(zhí)行自增序列的節(jié)點,也是dbseq.sql
導(dǎo)入的節(jié)點
dbseq.sql
導(dǎo)入的當(dāng)前庫的庫名與邏輯表的邏輯庫名一致
導(dǎo)入后檢查庫下有沒有mycat_sequence
表
其中increment
是序列號自增的步伐,為1
的時候嚴格按1
遞增,當(dāng)1000
的時候,mycat會每次批量遞增1000
取序列號.此時在多個mycat訪問此序列號表的情況下,不能嚴格自增
NAME
列中的值是對應(yīng)的 庫名_表名 該值需要用戶設(shè)置
通過注解設(shè)置為雪花算法
/*+ mycat:setSequence{"name":"db1_travelrecord","time":true} */;
通過注解設(shè)置為數(shù)據(jù)庫方式全局序列號
/*+ mycat:setSequence
{"name":"db1_travelrecord","clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator"} */;
參數(shù)與上述的數(shù)據(jù)庫方式相同
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: