99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Mycat2 序列號(hào) sequence

2021-09-09 14:42 更新

序列號(hào)配置

使用序列號(hào)的分片表,對(duì)應(yīng)的自增主鍵要在建表SQL中體現(xiàn)

例如

`id` bigint NOT NULL AUTO_INCREMENT

2021-8-17后支持autoIncrement屬性強(qiáng)制關(guān)閉全局序列號(hào)

        "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本身的自增主鍵的功能,需要在配置中更改對(duì)應(yīng)的建表sql,不設(shè)置AUTO_INCREMENT關(guān)鍵字,這樣,mycat就不認(rèn)為這個(gè)表有自增主鍵的功能,就不會(huì)使用mycat的全局序列號(hào).

這樣,對(duì)應(yīng)的插入sql在mysql處理,由mysql的自增主鍵功能補(bǔ)全自增值.

建表sql可以自動(dòng)在原型庫(kù)對(duì)應(yīng)的邏輯表的物理表獲取,如果邏輯表的建表SQL與物理表的建表SQL不對(duì)應(yīng),則需要在配置文件中配置建表SQL.

{數(shù)據(jù)庫(kù)名字}_{表名字}.sequence.json放置在sequecnes文件夾下面

{
    "clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator",
    "name":"db1_travelrecord"
}

如果不配置,分片表使用雪花算法生成全局序列號(hào) io.mycat.plug.sequence.SequenceMySQLGenerator

{
    "clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator",
    "name":"db1_travelrecord"
}

prototype服務(wù)器的db1庫(kù)導(dǎo)入dbseq.sql文件 在mycat_sequence表建立db1_travelrecord行,即可,Mycat會(huì)從更新此行獲得序列號(hào) 注意庫(kù)名對(duì)應(yīng)這里db1_travelrecord中的db1就是dbseq.sql導(dǎo)入的庫(kù)(物理庫(kù),一般是原型庫(kù),不能在mycat里執(zhí)行) 可選參數(shù)targetName更改序列號(hào)服務(wù)器

{
    "clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator",
    "name":"db1_travelrecord",
  "targetName": "prototype",
  "schemaName":"db1"http://指定物理庫(kù)名
}

?"targetName":"prototype"是執(zhí)行自增序列的節(jié)點(diǎn),也是dbseq.sql導(dǎo)入的節(jié)點(diǎn)

dbseq.sql導(dǎo)入的當(dāng)前庫(kù)的庫(kù)名與邏輯表的邏輯庫(kù)名一致

導(dǎo)入后檢查庫(kù)下有沒(méi)有mycat_sequence

其中increment是序列號(hào)自增的步伐,為1的時(shí)候嚴(yán)格按1遞增,當(dāng)1000的時(shí)候,mycat會(huì)每次批量遞增1000取序列號(hào).此時(shí)在多個(gè)mycat訪問(wèn)此序列號(hào)表的情況下,不能嚴(yán)格自增

NAME列中的值是對(duì)應(yīng)的 庫(kù)名_表名 該值需要用戶設(shè)置

通過(guò)注解設(shè)置為雪花算法

/*+ mycat:setSequence{"name":"db1_travelrecord","time":true} */;

通過(guò)注解設(shè)置為數(shù)據(jù)庫(kù)方式全局序列號(hào)

/*+ mycat:setSequence
{"name":"db1_travelrecord","clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator"} */;

參數(shù)與上述的數(shù)據(jù)庫(kù)方式相同

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)