Browse Source

optimize index

pull/43/head
yedf2 5 years ago
parent
commit
9402c4ea5b
  1. 20
      dtmsvr/dtmsvr.mysql.sql
  2. 66
      dtmsvr/dtmsvr.postgres.sql

20
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; drop table IF EXISTS dtm.trans_global;
CREATE TABLE if not EXISTS dtm.trans_global ( CREATE TABLE if not EXISTS dtm.trans_global (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`gid` varchar(128) NOT NULL COMMENT '事务全局id', `gid` varchar(128) NOT NULL COMMENT '事务全局id',
`trans_type` varchar(45) not null COMMENT '事务类型: saga | xa | tcc | msg', `trans_type` varchar(45) not null COMMENT '事务类型: saga | xa | tcc | msg',
-- `data` TEXT COMMENT '事务携带的数据', -- 影响性能,不必要存储 -- `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', `query_prepared` varchar(128) NOT NULL COMMENT 'prepared状态事务的查询api',
`protocol` varchar(45) not null comment '通信协议 http | grpc', `protocol` varchar(45) not null comment '通信协议 http | grpc',
`create_time` datetime DEFAULT NULL, `create_time` datetime DEFAULT NULL,
@ -22,9 +23,8 @@ CREATE TABLE if not EXISTS dtm.trans_global (
key `owner`(`owner`), key `owner`(`owner`),
KEY `create_time` (`create_time`), KEY `create_time` (`create_time`),
KEY `update_time` (`update_time`), KEY `update_time` (`update_time`),
key `next_cron_time` (`next_cron_time`) key `status_next_cron_time` (`status`, `next_cron_time`) commit '这个索引用于查询超时的全局事务,能够合理的走索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
drop table IF EXISTS dtm.trans_branch; drop table IF EXISTS dtm.trans_branch;
CREATE TABLE IF NOT EXISTS dtm.trans_branch ( CREATE TABLE IF NOT EXISTS dtm.trans_branch (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
@ -39,11 +39,10 @@ CREATE TABLE IF NOT EXISTS dtm.trans_branch (
`create_time` datetime DEFAULT NULL, `create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`), 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 `create_time` (`create_time`),
KEY `update_time` (`update_time`) KEY `update_time` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
drop table IF EXISTS dtm.trans_log; drop table IF EXISTS dtm.trans_log;
CREATE TABLE IF NOT EXISTS dtm.trans_log ( CREATE TABLE IF NOT EXISTS dtm.trans_log (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
@ -57,5 +56,4 @@ CREATE TABLE IF NOT EXISTS dtm.trans_log (
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `gid` (`gid`), KEY `gid` (`gid`),
KEY `create_time` (`create_time`) KEY `create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;

66
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; drop table IF EXISTS dtm.trans_global;
-- SQLINES LICENSE FOR EVALUATION USE ONLY -- SQLINES LICENSE FOR EVALUATION USE ONLY
CREATE SEQUENCE if not EXISTS dtm.trans_global_seq; CREATE SEQUENCE if not EXISTS dtm.trans_global_seq;
CREATE TABLE if not EXISTS dtm.trans_global ( CREATE TABLE if not EXISTS dtm.trans_global (
id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_global_seq'), id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_global_seq'),
gid varchar(128) NOT NULL , gid varchar(128) NOT NULL,
trans_type varchar(45) not null , trans_type varchar(45) not null,
status varchar(45) NOT NULL , status varchar(45) NOT NULL,
query_prepared varchar(128) NOT NULL , query_prepared varchar(128) NOT NULL,
protocol varchar(45) not null, protocol varchar(45) not null,
create_time timestamp(0) DEFAULT NULL, create_time timestamp(0) DEFAULT NULL,
update_time timestamp(0) DEFAULT NULL, update_time timestamp(0) DEFAULT NULL,
commit_time timestamp(0) DEFAULT NULL, commit_time timestamp(0) DEFAULT NULL,
finish_time timestamp(0) DEFAULT NULL, finish_time timestamp(0) DEFAULT NULL,
rollback_time timestamp(0) DEFAULT NULL, rollback_time timestamp(0) DEFAULT NULL,
next_cron_interval int default null , next_cron_interval int default null,
next_cron_time timestamp(0) default null , next_cron_time timestamp(0) default null,
owner varchar(128) not null default '' , owner varchar(128) not null default '',
PRIMARY KEY (id), 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 owner on dtm.trans_global(owner);
CREATE INDEX if not EXISTS create_time ON dtm.trans_global (create_time); 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 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; drop table IF EXISTS dtm.trans_branch;
-- SQLINES LICENSE FOR EVALUATION USE ONLY -- SQLINES LICENSE FOR EVALUATION USE ONLY
CREATE SEQUENCE if not EXISTS dtm.trans_branch_seq; CREATE SEQUENCE if not EXISTS dtm.trans_branch_seq;
CREATE TABLE IF NOT EXISTS dtm.trans_branch ( CREATE TABLE IF NOT EXISTS dtm.trans_branch (
id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_branch_seq'), id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_branch_seq'),
gid varchar(128) NOT NULL , gid varchar(128) NOT NULL,
url varchar(128) NOT NULL , url varchar(128) NOT NULL,
data TEXT , data TEXT,
branch_id VARCHAR(128) NOT NULL , branch_id VARCHAR(128) NOT NULL,
branch_type varchar(45) NOT NULL , branch_type varchar(45) NOT NULL,
status varchar(45) NOT NULL , status varchar(45) NOT NULL,
finish_time timestamp(0) DEFAULT NULL, finish_time timestamp(0) DEFAULT NULL,
rollback_time timestamp(0) DEFAULT NULL, rollback_time timestamp(0) DEFAULT NULL,
create_time timestamp(0) DEFAULT NULL, create_time timestamp(0) DEFAULT NULL,
update_time timestamp(0) DEFAULT NULL, update_time timestamp(0) DEFAULT NULL,
PRIMARY KEY (id), 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 create_time ON dtm.trans_branch (create_time);
CREATE INDEX if not EXISTS update_time ON dtm.trans_branch (update_time); CREATE INDEX if not EXISTS update_time ON dtm.trans_branch (update_time);
drop table IF EXISTS dtm.trans_log; drop table IF EXISTS dtm.trans_log;
-- SQLINES LICENSE FOR EVALUATION USE ONLY -- SQLINES LICENSE FOR EVALUATION USE ONLY
CREATE SEQUENCE if not EXISTS dtm.trans_log_seq; CREATE SEQUENCE if not EXISTS dtm.trans_log_seq;
CREATE TABLE IF NOT EXISTS dtm.trans_log ( CREATE TABLE IF NOT EXISTS dtm.trans_log (
id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_log_seq'), id int NOT NULL DEFAULT NEXTVAL ('dtm.trans_log_seq'),
gid varchar(128) NOT NULL , gid varchar(128) NOT NULL,
branch_id varchar(128) DEFAULT NULL , branch_id varchar(128) DEFAULT NULL,
action varchar(45) DEFAULT NULL , action varchar(45) DEFAULT NULL,
old_status varchar(45) NOT NULL DEFAULT '' , old_status varchar(45) NOT NULL DEFAULT '',
new_status varchar(45) NOT NULL , new_status varchar(45) NOT NULL,
detail TEXT NOT NULL , detail TEXT NOT NULL,
create_time timestamp(0) DEFAULT CURRENT_TIMESTAMP, create_time timestamp(0) DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id) PRIMARY KEY (id)
) ; );
CREATE INDEX if not EXISTS gid ON dtm.trans_log (gid); 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);
Loading…
Cancel
Save