diff --git a/dtmsvr/dtmsvr.mysql.sql b/dtmsvr/dtmsvr.mysql.sql index 93b6614..eacb365 100644 --- a/dtmsvr/dtmsvr.mysql.sql +++ b/dtmsvr/dtmsvr.mysql.sql @@ -1,12 +1,13 @@ -CREATE DATABASE IF NOT EXISTS dtm /*!40100 DEFAULT CHARACTER SET utf8mb4 */; - +CREATE DATABASE IF NOT EXISTS dtm +/*!40100 DEFAULT CHARACTER SET utf8mb4 */ +; drop table IF EXISTS dtm.trans_global; CREATE TABLE if not EXISTS dtm.trans_global ( `id` int(11) NOT NULL AUTO_INCREMENT, `gid` varchar(128) NOT NULL COMMENT '事务全局id', `trans_type` varchar(45) not null COMMENT '事务类型: saga | xa | tcc | msg', -- `data` TEXT COMMENT '事务携带的数据', -- 影响性能,不必要存储 - `status` varchar(45) NOT NULL COMMENT '全局事务的状态 prepared | submitted | finished | rollbacked', + `status` varchar(12) NOT NULL COMMENT '全局事务的状态 prepared | submitted | aborting | finished | rollbacked', `query_prepared` varchar(128) NOT NULL COMMENT 'prepared状态事务的查询api', `protocol` varchar(45) not null comment '通信协议 http | grpc', `create_time` datetime DEFAULT NULL, @@ -22,9 +23,8 @@ CREATE TABLE if not EXISTS dtm.trans_global ( key `owner`(`owner`), KEY `create_time` (`create_time`), KEY `update_time` (`update_time`), - key `next_cron_time` (`next_cron_time`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - + key `status_next_cron_time` (`status`, `next_cron_time`) commit '这个索引用于查询超时的全局事务,能够合理的走索引' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; drop table IF EXISTS dtm.trans_branch; CREATE TABLE IF NOT EXISTS dtm.trans_branch ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -39,11 +39,10 @@ CREATE TABLE IF NOT EXISTS dtm.trans_branch ( `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `gid_uniq` (`gid`,`branch_id`, `branch_type`), + UNIQUE KEY `gid_uniq` (`gid`, `branch_id`, `branch_type`), KEY `create_time` (`create_time`), KEY `update_time` (`update_time`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; drop table IF EXISTS dtm.trans_log; CREATE TABLE IF NOT EXISTS dtm.trans_log ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -57,5 +56,4 @@ CREATE TABLE IF NOT EXISTS dtm.trans_log ( PRIMARY KEY (`id`), KEY `gid` (`gid`), KEY `create_time` (`create_time`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; \ No newline at end of file diff --git a/dtmsvr/dtmsvr.postgres.sql b/dtmsvr/dtmsvr.postgres.sql index ccb4164..6bc598a 100644 --- a/dtmsvr/dtmsvr.postgres.sql +++ b/dtmsvr/dtmsvr.postgres.sql @@ -1,72 +1,64 @@ -CREATE SCHEMA if not EXISTS dtm /* SQLINES DEMO *** RACTER SET utf8mb4 */; - +CREATE SCHEMA if not EXISTS dtm +/* SQLINES DEMO *** RACTER SET utf8mb4 */ +; drop table IF EXISTS dtm.trans_global; -- SQLINES LICENSE FOR EVALUATION USE ONLY CREATE SEQUENCE if not EXISTS dtm.trans_global_seq; - CREATE TABLE if not EXISTS dtm.trans_global ( id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_global_seq'), - gid varchar(128) NOT NULL , - trans_type varchar(45) not null , - status varchar(45) NOT NULL , - query_prepared varchar(128) NOT NULL , + gid varchar(128) NOT NULL, + trans_type varchar(45) not null, + status varchar(45) NOT NULL, + query_prepared varchar(128) NOT NULL, protocol varchar(45) not null, create_time timestamp(0) DEFAULT NULL, update_time timestamp(0) DEFAULT NULL, commit_time timestamp(0) DEFAULT NULL, finish_time timestamp(0) DEFAULT NULL, rollback_time timestamp(0) DEFAULT NULL, - next_cron_interval int default null , - next_cron_time timestamp(0) default null , - owner varchar(128) not null default '' , + next_cron_interval int default null, + next_cron_time timestamp(0) default null, + owner varchar(128) not null default '', PRIMARY KEY (id), - CONSTRAINT gid UNIQUE (gid) -) ; - + CONSTRAINT gid UNIQUE (gid) +); create index if not EXISTS owner on dtm.trans_global(owner); CREATE INDEX if not EXISTS create_time ON dtm.trans_global (create_time); CREATE INDEX if not EXISTS update_time ON dtm.trans_global (update_time); -create index if not EXISTS next_cron_time on dtm.trans_global (next_cron_time); - +create index if not EXISTS status_next_cron_time on dtm.trans_global (status, next_cron_time); drop table IF EXISTS dtm.trans_branch; -- SQLINES LICENSE FOR EVALUATION USE ONLY CREATE SEQUENCE if not EXISTS dtm.trans_branch_seq; - CREATE TABLE IF NOT EXISTS dtm.trans_branch ( id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_branch_seq'), - gid varchar(128) NOT NULL , - url varchar(128) NOT NULL , - data TEXT , - branch_id VARCHAR(128) NOT NULL , - branch_type varchar(45) NOT NULL , - status varchar(45) NOT NULL , + gid varchar(128) NOT NULL, + url varchar(128) NOT NULL, + data TEXT, + branch_id VARCHAR(128) NOT NULL, + branch_type varchar(45) NOT NULL, + status varchar(45) NOT NULL, finish_time timestamp(0) DEFAULT NULL, rollback_time timestamp(0) DEFAULT NULL, create_time timestamp(0) DEFAULT NULL, update_time timestamp(0) DEFAULT NULL, PRIMARY KEY (id), - CONSTRAINT gid_uniq UNIQUE (gid,branch_id, branch_type) -) ; - + CONSTRAINT gid_uniq UNIQUE (gid, branch_id, branch_type) +); CREATE INDEX if not EXISTS create_time ON dtm.trans_branch (create_time); CREATE INDEX if not EXISTS update_time ON dtm.trans_branch (update_time); - drop table IF EXISTS dtm.trans_log; -- SQLINES LICENSE FOR EVALUATION USE ONLY CREATE SEQUENCE if not EXISTS dtm.trans_log_seq; - CREATE TABLE IF NOT EXISTS dtm.trans_log ( id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_log_seq'), - gid varchar(128) NOT NULL , - branch_id varchar(128) DEFAULT NULL , - action varchar(45) DEFAULT NULL , - old_status varchar(45) NOT NULL DEFAULT '' , - new_status varchar(45) NOT NULL , - detail TEXT NOT NULL , + gid varchar(128) NOT NULL, + branch_id varchar(128) DEFAULT NULL, + action varchar(45) DEFAULT NULL, + old_status varchar(45) NOT NULL DEFAULT '', + new_status varchar(45) NOT NULL, + detail TEXT NOT NULL, create_time timestamp(0) DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) -) ; - +); CREATE INDEX if not EXISTS gid ON dtm.trans_log (gid); -CREATE INDEX if not EXISTS create_time ON dtm.trans_log (create_time); - +CREATE INDEX if not EXISTS create_time ON dtm.trans_log (create_time); \ No newline at end of file