Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
KnowledgePlanet
road-map
xfg-frame-archetype-std
提交
f47d9e75
xfg-frame-archetype-std
项目概览
KnowledgePlanet
/
road-map
/
xfg-frame-archetype-std
通知
1426
Star
117
Fork
125
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
xfg-frame-archetype-std
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f47d9e75
编写于
11月 04, 2023
作者:
小傅哥
⛹
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
小傅哥,feat:环境配置
上级
64661495
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
799 addition
and
0 deletion
+799
-0
docs/dev-ops/environment/docker-compose.yml
docs/dev-ops/environment/docker-compose.yml
+67
-0
docs/dev-ops/environment/sql/nacos.sql
docs/dev-ops/environment/sql/nacos.sql
+302
-0
docs/dev-ops/environment/sql/xfg_dev_tech_db_00.sql
docs/dev-ops/environment/sql/xfg_dev_tech_db_00.sql
+215
-0
docs/dev-ops/environment/sql/xfg_dev_tech_db_01.sql
docs/dev-ops/environment/sql/xfg_dev_tech_db_01.sql
+215
-0
未找到文件。
docs/dev-ops/environment/docker-compose.yml
0 → 100644
浏览文件 @
f47d9e75
# 命令执行 docker-compose up -d
version
:
'
3.9'
services
:
# 注册中心 https://github.com/nacos-group/nacos-docker - 其他配置可参考(集群)
# http://127.0.0.1:8848/nacos 【账号:nacos 密码:nacos】
nacos
:
image
:
nacos/nacos-server:v2.2.3-slim
container_name
:
nacos
restart
:
always
ports
:
-
"
8848:8848"
-
"
9848:9848"
environment
:
-
PREFER_HOST_MODE=hostname
-
MODE=standalone
-
SPRING_DATASOURCE_PLATFORM=mysql
-
MYSQL_SERVICE_HOST=mysql
-
MYSQL_SERVICE_DB_NAME=nacos_config
-
MYSQL_SERVICE_PORT=3306
-
MYSQL_SERVICE_USER=root
-
MYSQL_SERVICE_PASSWORD=123456
-
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
-
NACOS_AUTH_IDENTITY_KEY=2222
-
NACOS_AUTH_IDENTITY_VALUE=2xxx
-
NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
networks
:
-
my-network
depends_on
:
mysql
:
condition
:
service_healthy
mysql
:
image
:
mysql:8.0.32
container_name
:
mysql
command
:
--default-authentication-plugin=mysql_native_password
restart
:
always
environment
:
TZ
:
Asia/Shanghai
MYSQL_ROOT_PASSWORD
:
123456
MYSQL_USER
:
xfg
MYSQL_PASSWORD
:
123456
networks
:
-
my-network
depends_on
:
-
mysql-job-dbdata
ports
:
-
"
13306:3306"
volumes
:
-
./sql:/docker-entrypoint-initdb.d
healthcheck
:
test
:
[
"
CMD"
,
"
mysqladmin"
,
"
ping"
,
"
-h"
,
"
localhost"
]
interval
:
5s
timeout
:
10s
retries
:
10
volumes_from
:
-
mysql-job-dbdata
# 自动加载数据
mysql-job-dbdata
:
image
:
alpine:3.18.2
container_name
:
mysql-job-dbdata
volumes
:
-
/var/lib/mysql
networks
:
my-network
:
driver
:
bridge
\ No newline at end of file
docs/dev-ops/environment/sql/nacos.sql
0 → 100644
浏览文件 @
f47d9e75
#
************************************************************
#
Sequel
Ace
SQL
dump
#
版本号:
20050
#
#
https
:
//
sequel
-
ace
.
com
/
#
https
:
//
github
.
com
/
Sequel
-
Ace
/
Sequel
-
Ace
#
#
主机
:
127
.
0
.
0
.
1
(
MySQL
8
.
0
.
32
)
#
数据库
:
nacos_config
#
生成时间
:
2023
-
11
-
03
06
:
44
:
40
+
0000
#
************************************************************
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */
;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */
;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */
;
SET
NAMES
utf8mb4
;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */
;
/*!40101 SET @OLD_SQL_MODE='NO_AUTO_VALUE_ON_ZERO', SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */
;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */
;
CREATE
database
if
NOT
EXISTS
`nacos_config`
default
character
set
utf8mb4
collate
utf8mb4_0900_ai_ci
;
use
`nacos_config`
;
#
转储表
config_info
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`config_info`
;
CREATE
TABLE
`config_info`
(
`id`
bigint
NOT
NULL
AUTO_INCREMENT
COMMENT
'id'
,
`data_id`
varchar
(
255
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'data_id'
,
`group_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`content`
longtext
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'content'
,
`md5`
varchar
(
32
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'md5'
,
`gmt_create`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'创建时间'
,
`gmt_modified`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'修改时间'
,
`src_user`
text
COLLATE
utf8mb3_bin
COMMENT
'source user'
,
`src_ip`
varchar
(
20
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'source ip'
,
`app_name`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'ç§Ÿæˆ·å—æ®µ'
,
`c_desc`
varchar
(
256
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`c_use`
varchar
(
64
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`effect`
varchar
(
64
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`type`
varchar
(
64
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`c_schema`
text
COLLATE
utf8mb3_bin
,
`encrypted_data_key`
text
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'秘钥'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uk_configinfo_datagrouptenant`
(
`data_id`
,
`group_id`
,
`tenant_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'config_info'
;
#
转储表
config_info_aggr
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`config_info_aggr`
;
CREATE
TABLE
`config_info_aggr`
(
`id`
bigint
NOT
NULL
AUTO_INCREMENT
COMMENT
'id'
,
`data_id`
varchar
(
255
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'data_id'
,
`group_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'group_id'
,
`datum_id`
varchar
(
255
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'datum_id'
,
`content`
longtext
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'内容'
,
`gmt_modified`
datetime
NOT
NULL
COMMENT
'修改时间'
,
`app_name`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'ç§Ÿæˆ·å—æ®µ'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uk_configinfoaggr_datagrouptenantdatum`
(
`data_id`
,
`group_id`
,
`tenant_id`
,
`datum_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'å¢žåŠ ç§Ÿæˆ·å—æ®µ'
;
#
转储表
config_info_beta
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`config_info_beta`
;
CREATE
TABLE
`config_info_beta`
(
`id`
bigint
NOT
NULL
AUTO_INCREMENT
COMMENT
'id'
,
`data_id`
varchar
(
255
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'data_id'
,
`group_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'group_id'
,
`app_name`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'app_name'
,
`content`
longtext
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'content'
,
`beta_ips`
varchar
(
1024
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'betaIps'
,
`md5`
varchar
(
32
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'md5'
,
`gmt_create`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'创建时间'
,
`gmt_modified`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'修改时间'
,
`src_user`
text
COLLATE
utf8mb3_bin
COMMENT
'source user'
,
`src_ip`
varchar
(
20
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'source ip'
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'ç§Ÿæˆ·å—æ®µ'
,
`encrypted_data_key`
text
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'秘钥'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uk_configinfobeta_datagrouptenant`
(
`data_id`
,
`group_id`
,
`tenant_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'config_info_beta'
;
#
转储表
config_info_tag
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`config_info_tag`
;
CREATE
TABLE
`config_info_tag`
(
`id`
bigint
NOT
NULL
AUTO_INCREMENT
COMMENT
'id'
,
`data_id`
varchar
(
255
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'data_id'
,
`group_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'group_id'
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'tenant_id'
,
`tag_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'tag_id'
,
`app_name`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'app_name'
,
`content`
longtext
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'content'
,
`md5`
varchar
(
32
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'md5'
,
`gmt_create`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'创建时间'
,
`gmt_modified`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'修改时间'
,
`src_user`
text
COLLATE
utf8mb3_bin
COMMENT
'source user'
,
`src_ip`
varchar
(
20
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'source ip'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uk_configinfotag_datagrouptenanttag`
(
`data_id`
,
`group_id`
,
`tenant_id`
,
`tag_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'config_info_tag'
;
#
转储表
config_tags_relation
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`config_tags_relation`
;
CREATE
TABLE
`config_tags_relation`
(
`id`
bigint
NOT
NULL
COMMENT
'id'
,
`tag_name`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'tag_name'
,
`tag_type`
varchar
(
64
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'tag_type'
,
`data_id`
varchar
(
255
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'data_id'
,
`group_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'group_id'
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'tenant_id'
,
`nid`
bigint
NOT
NULL
AUTO_INCREMENT
,
PRIMARY
KEY
(
`nid`
),
UNIQUE
KEY
`uk_configtagrelation_configidtag`
(
`id`
,
`tag_name`
,
`tag_type`
),
KEY
`idx_tenant_id`
(
`tenant_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'config_tag_relation'
;
#
转储表
group_capacity
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`group_capacity`
;
CREATE
TABLE
`group_capacity`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'主键ID'
,
`group_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
DEFAULT
''
COMMENT
'Group ID,空å—符表示整个集群'
,
`quota`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'é…é¢ï¼Œ0表示使用默认值'
,
`usage`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'使用é‡'
,
`max_size`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'å•个é…置大å°ä¸Šé™ï¼Œå•ä½ä¸ºå—节,0表示使用默认值'
,
`max_aggr_count`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'èšåˆåé…置最大个数,,0表示使用默认值'
,
`max_aggr_size`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'å•个èšåˆæ•°æ®çš„åé…置大å°ä¸Šé™ï¼Œå•ä½ä¸ºå—节,0表示使用默认值'
,
`max_history_count`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'æœ€å¤§å˜æ›´åކ岿•°é‡'
,
`gmt_create`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'创建时间'
,
`gmt_modified`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'修改时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uk_group_id`
(
`group_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'集群ã€å„Group容é‡ä¿¡æ¯è¡¨'
;
#
转储表
his_config_info
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`his_config_info`
;
CREATE
TABLE
`his_config_info`
(
`id`
bigint
unsigned
NOT
NULL
,
`nid`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
,
`data_id`
varchar
(
255
)
COLLATE
utf8mb3_bin
NOT
NULL
,
`group_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
,
`app_name`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'app_name'
,
`content`
longtext
COLLATE
utf8mb3_bin
NOT
NULL
,
`md5`
varchar
(
32
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`gmt_create`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
,
`gmt_modified`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
,
`src_user`
text
COLLATE
utf8mb3_bin
,
`src_ip`
varchar
(
20
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`op_type`
char
(
10
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'ç§Ÿæˆ·å—æ®µ'
,
`encrypted_data_key`
text
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'秘钥'
,
PRIMARY
KEY
(
`nid`
),
KEY
`idx_gmt_create`
(
`gmt_create`
),
KEY
`idx_gmt_modified`
(
`gmt_modified`
),
KEY
`idx_did`
(
`data_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'å¤šç§Ÿæˆ·æ”¹é€ '
;
#
转储表
permissions
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`permissions`
;
CREATE
TABLE
`permissions`
(
`role`
varchar
(
50
)
NOT
NULL
,
`resource`
varchar
(
512
)
NOT
NULL
,
`action`
varchar
(
8
)
NOT
NULL
,
UNIQUE
KEY
`uk_role_permission`
(
`role`
,
`resource`
,
`action`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
#
转储表
roles
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`roles`
;
CREATE
TABLE
`roles`
(
`username`
varchar
(
50
)
NOT
NULL
,
`role`
varchar
(
50
)
NOT
NULL
,
UNIQUE
KEY
`uk_username_role`
(
`username`
,
`role`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`roles`
WRITE
;
/*!40000 ALTER TABLE `roles` DISABLE KEYS */
;
INSERT
INTO
`roles`
(
`username`
,
`role`
)
VALUES
(
'nacos'
,
'ROLE_ADMIN'
);
/*!40000 ALTER TABLE `roles` ENABLE KEYS */
;
UNLOCK
TABLES
;
#
转储表
tenant_capacity
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`tenant_capacity`
;
CREATE
TABLE
`tenant_capacity`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'主键ID'
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
DEFAULT
''
COMMENT
'Tenant ID'
,
`quota`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'é…é¢ï¼Œ0表示使用默认值'
,
`usage`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'使用é‡'
,
`max_size`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'å•个é…置大å°ä¸Šé™ï¼Œå•ä½ä¸ºå—节,0表示使用默认值'
,
`max_aggr_count`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'èšåˆåé…置最大个数'
,
`max_aggr_size`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'å•个èšåˆæ•°æ®çš„åé…置大å°ä¸Šé™ï¼Œå•ä½ä¸ºå—节,0表示使用默认值'
,
`max_history_count`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'æœ€å¤§å˜æ›´åކ岿•°é‡'
,
`gmt_create`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'创建时间'
,
`gmt_modified`
datetime
NOT
NULL
DEFAULT
'2010-05-05 00:00:00'
COMMENT
'修改时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uk_tenant_id`
(
`tenant_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'租户容é‡ä¿¡æ¯è¡¨'
;
#
转储表
tenant_info
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`tenant_info`
;
CREATE
TABLE
`tenant_info`
(
`id`
bigint
NOT
NULL
AUTO_INCREMENT
COMMENT
'id'
,
`kp`
varchar
(
128
)
COLLATE
utf8mb3_bin
NOT
NULL
COMMENT
'kp'
,
`tenant_id`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'tenant_id'
,
`tenant_name`
varchar
(
128
)
COLLATE
utf8mb3_bin
DEFAULT
''
COMMENT
'tenant_name'
,
`tenant_desc`
varchar
(
256
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'tenant_desc'
,
`create_source`
varchar
(
32
)
COLLATE
utf8mb3_bin
DEFAULT
NULL
COMMENT
'create_source'
,
`gmt_create`
bigint
NOT
NULL
COMMENT
'创建时间'
,
`gmt_modified`
bigint
NOT
NULL
COMMENT
'修改时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uk_tenant_info_kptenantid`
(
`kp`
,
`tenant_id`
),
KEY
`idx_tenant_id`
(
`tenant_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb3
COLLATE
=
utf8mb3_bin
COMMENT
=
'tenant_info'
;
#
转储表
users
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`users`
;
CREATE
TABLE
`users`
(
`username`
varchar
(
50
)
NOT
NULL
,
`password`
varchar
(
500
)
NOT
NULL
,
`enabled`
tinyint
(
1
)
NOT
NULL
,
PRIMARY
KEY
(
`username`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`users`
WRITE
;
/*!40000 ALTER TABLE `users` DISABLE KEYS */
;
INSERT
INTO
`users`
(
`username`
,
`password`
,
`enabled`
)
VALUES
(
'nacos'
,
'$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu'
,
1
);
/*!40000 ALTER TABLE `users` ENABLE KEYS */
;
UNLOCK
TABLES
;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */
;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */
;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */
;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */
;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */
;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */
;
docs/dev-ops/environment/sql/xfg_dev_tech_db_00.sql
0 → 100644
浏览文件 @
f47d9e75
#
************************************************************
#
Sequel
Ace
SQL
dump
#
版本号:
20050
#
#
https
:
//
sequel
-
ace
.
com
/
#
https
:
//
github
.
com
/
Sequel
-
Ace
/
Sequel
-
Ace
#
#
主机
:
127
.
0
.
0
.
1
(
MySQL
8
.
0
.
32
)
#
数据库
:
xfg_dev_tech_db_00
#
生成时间
:
2023
-
11
-
02
07
:
41
:
33
+
0000
#
************************************************************
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */
;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */
;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */
;
SET
NAMES
utf8mb4
;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */
;
/*!40101 SET @OLD_SQL_MODE='NO_AUTO_VALUE_ON_ZERO', SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */
;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */
;
CREATE
database
if
NOT
EXISTS
`xfg_dev_tech_db_00`
default
character
set
utf8mb4
collate
utf8mb4_0900_ai_ci
;
use
`xfg_dev_tech_db_00`
;
#
转储表
user_order_0
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_0`
;
CREATE
TABLE
`user_order_0`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
109
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_0`
WRITE
;
/*!40000 ALTER TABLE `user_order_0` DISABLE KEYS */
;
INSERT
INTO
`user_order_0`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_FOawiP'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'55811762243'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'd737caf79181405a987a34a17f7a7beb'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
),
(
2
,
'小傅哥'
,
'xfg_MIxVOs'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'64790165297'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:46'
,
0
,
0
,
'adf5faa9fba24c298dd426e04b3dd10f'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:54'
,
'2023-11-02 15:38:54'
);
/*!40000 ALTER TABLE `user_order_0` ENABLE KEYS */
;
UNLOCK
TABLES
;
#
转储表
user_order_1
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_1`
;
CREATE
TABLE
`user_order_1`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
147
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_1`
WRITE
;
/*!40000 ALTER TABLE `user_order_1` DISABLE KEYS */
;
INSERT
INTO
`user_order_1`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_Cnazua'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'67077289265'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'42fab13a8a7f4bf4a1db5515b5a7d1f9'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
),
(
2
,
'小傅哥'
,
'xfg_bMNgJb'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'44231861187'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'e1707367684140c8b1d57caacc1acbf8'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
);
/*!40000 ALTER TABLE `user_order_1` ENABLE KEYS */
;
UNLOCK
TABLES
;
#
转储表
user_order_2
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_2`
;
CREATE
TABLE
`user_order_2`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
136
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_2`
WRITE
;
/*!40000 ALTER TABLE `user_order_2` DISABLE KEYS */
;
INSERT
INTO
`user_order_2`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_BbNdEo'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'75706486913'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'f576ce3965d3455db48d9db59397908d'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
),
(
2
,
'小傅哥'
,
'xfg_WKOtte'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'56110050786'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'06156ea5dd564f13a8b03dd55936f739'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
);
/*!40000 ALTER TABLE `user_order_2` ENABLE KEYS */
;
UNLOCK
TABLES
;
#
转储表
user_order_3
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_3`
;
CREATE
TABLE
`user_order_3`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
120
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_3`
WRITE
;
/*!40000 ALTER TABLE `user_order_3` DISABLE KEYS */
;
INSERT
INTO
`user_order_3`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_wMIvhS'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'04973851200'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'94500f29e6ba4c849094e7b694942e5b'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
),
(
2
,
'小傅哥'
,
'xfg_mRLUQC'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'84344470134'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'12b4e2c16a15434db8efd5140a262189'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
);
/*!40000 ALTER TABLE `user_order_3` ENABLE KEYS */
;
UNLOCK
TABLES
;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */
;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */
;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */
;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */
;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */
;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */
;
\ No newline at end of file
docs/dev-ops/environment/sql/xfg_dev_tech_db_01.sql
0 → 100644
浏览文件 @
f47d9e75
#
************************************************************
#
Sequel
Ace
SQL
dump
#
版本号:
20050
#
#
https
:
//
sequel
-
ace
.
com
/
#
https
:
//
github
.
com
/
Sequel
-
Ace
/
Sequel
-
Ace
#
#
主机
:
127
.
0
.
0
.
1
(
MySQL
8
.
0
.
32
)
#
数据库
:
xfg_dev_tech_db_01
#
生成时间
:
2023
-
11
-
02
07
:
42
:
32
+
0000
#
************************************************************
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */
;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */
;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */
;
SET
NAMES
utf8mb4
;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */
;
/*!40101 SET @OLD_SQL_MODE='NO_AUTO_VALUE_ON_ZERO', SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */
;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */
;
CREATE
database
if
NOT
EXISTS
`xfg_dev_tech_db_01`
default
character
set
utf8mb4
collate
utf8mb4_0900_ai_ci
;
use
`xfg_dev_tech_db_01`
;
#
转储表
user_order_0
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_0`
;
CREATE
TABLE
`user_order_0`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
144
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_0`
WRITE
;
/*!40000 ALTER TABLE `user_order_0` DISABLE KEYS */
;
INSERT
INTO
`user_order_0`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_eKJVpO'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'13232577250'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:37:51'
,
0
,
0
,
'bad18b73d64a41e5a6c66ffde5c86620'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
),
(
2
,
'小傅哥'
,
'xfg_KigNVH'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'06196275702'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'21efcbb490de4f56b64ae44b05666513'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
);
/*!40000 ALTER TABLE `user_order_0` ENABLE KEYS */
;
UNLOCK
TABLES
;
#
转储表
user_order_1
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_1`
;
CREATE
TABLE
`user_order_1`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
127
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_1`
WRITE
;
/*!40000 ALTER TABLE `user_order_1` DISABLE KEYS */
;
INSERT
INTO
`user_order_1`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_SNvNdB'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'08440801977'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:55'
,
0
,
0
,
'4044fe46fabe498b8905a4f620f36076'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:54'
,
'2023-11-02 15:38:54'
),
(
2
,
'小傅哥'
,
'xfg_ccwftd'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'96970982688'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:55'
,
0
,
0
,
'90c02e7687bc4bc7a0b9d4eebee78d7a'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:55'
,
'2023-11-02 15:38:55'
);
/*!40000 ALTER TABLE `user_order_1` ENABLE KEYS */
;
UNLOCK
TABLES
;
#
转储表
user_order_2
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_2`
;
CREATE
TABLE
`user_order_2`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
127
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_2`
WRITE
;
/*!40000 ALTER TABLE `user_order_2` DISABLE KEYS */
;
INSERT
INTO
`user_order_2`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_rAZmon'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'76407784565'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'0c137db910fd430b9bab307b45b64369'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
),
(
2
,
'小傅哥'
,
'xfg_jbUupM'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'29649461429'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'f3ab7b04065a4c6cb562942c8fcf3282'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
);
/*!40000 ALTER TABLE `user_order_2` ENABLE KEYS */
;
UNLOCK
TABLES
;
#
转储表
user_order_3
#
------------------------------------------------------------
DROP
TABLE
IF
EXISTS
`user_order_3`
;
CREATE
TABLE
`user_order_3`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'自增ID;【必须保留自增ID,不要将一些有随机特性的字段值设计为主键,例如order_id,会导致innodb内部page分裂和大量随机I/O,性能下降】int 大约21亿左右,超过会报错。bigint 大约9千亿左右。'
,
`user_name`
varchar
(
64
)
NOT
NULL
COMMENT
'用户姓名;'
,
`user_id`
varchar
(
24
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户编号;'
,
`user_mobile`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'用户电话;使用varchar(20)存储手机号,不要使用整型。手机号不会做数学计算、涉及到区号或者国家代号,可能出现+-()、支持模糊查询,例如:like“135%”'
,
`sku`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品编号'
,
`sku_name`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'商品名称'
,
`order_id`
varchar
(
64
)
NOT
NULL
COMMENT
'订单ID'
,
`quantity`
int
NOT
NULL
DEFAULT
'1'
COMMENT
'商品数量;整形定义中不显示规定显示长度,比如使用 INT,而不使用 INT(4)'
,
`unit_price`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'商品价格;小数类型为 decimal,禁止使用 float、double'
,
`discount_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'折扣金额;'
,
`tax`
decimal
(
4
,
2
)
NOT
NULL
COMMENT
'费率金额;'
,
`total_amount`
decimal
(
10
,
2
)
NOT
NULL
COMMENT
'支付金额;(商品的总金额 - 折扣) * (1 - 费率)'
,
`order_date`
datetime
NOT
NULL
COMMENT
'订单日期;timestamp的时间范围在1970-01-01 00:00:01到2038-01-01 00:00:00之间'
,
`order_status`
tinyint
(
1
)
NOT
NULL
COMMENT
'订单状态;0 创建、1完成、2掉单、3关单 【不要使用 enum 要使用 tinyint 替代。0-80 范围,都可以使用 tinyint】'
,
`is_delete`
tinyint
(
1
)
NOT
NULL
DEFAULT
'0'
COMMENT
'逻辑删单;0未删除,1已删除 【表达是否概念的字段必须使用is_】'
,
`uuid`
varchar
(
128
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_0900_ai_ci
NOT
NULL
COMMENT
'唯一索引;分布式下全局唯一,用于binlog 同步 ES 方便使用'
,
`ipv4`
int
unsigned
NOT
NULL
DEFAULT
'2130706433'
COMMENT
'设备地址;存储IPV4地址,通过MySQL 函数转换,inet_ntoa、inet_aton 示例;SELECT INET_ATON(‘209.207.224.40′); 3520061480 SELECT INET_NTOA(3520061480); 209.207.224.40所有字段定义为NOT NULL,并设置默认值,因为null值的字段会导致每一行都占用额外存储空间
\\
n数据迁移容易出错,在聚合函数计算结果偏差(如count结果不准)并且null的列使索引/索引统计/值比较都更加复杂,MySQL内部需要进行特殊处理,表中有较多空字段的时候,数据库性能下降严重。开发中null只能采用is null或is not null检索,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!=’abc’,如果存在name为null值的记录,查询结果就不会包含name为null值的记录'
,
`ipv6`
varbinary
(
16
)
NOT
NULL
COMMENT
'设备地址;存储IPV6地址,VARBINARY(16) 插入:INET6_ATON(
''
2001:0db8:85a3:0000:0000:8a2e:0370:7334
''
) 查询:SELECT INET6_NTOA(ip_address) '
,
`ext_data`
json
NOT
NULL
COMMENT
'扩展数据;记录下单时用户的设备环境等信息(核心业务字段,要单独拆表)。【select user_name, ext_data, ext_data->>
''
$.device
''
, ext_data->>
''
$.device.machine
''
from `user_order`;】'
,
`update_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`create_time`
datetime
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`uq_orderid`
(
`order_id`
),
UNIQUE
KEY
`uq_uuid`
(
`uuid`
),
KEY
`idx_order_date`
(
`order_date`
),
KEY
`idx_sku_unit_price_total_amount`
(
`sku`
,
`unit_price`
,
`total_amount`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
148
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
LOCK
TABLES
`user_order_3`
WRITE
;
/*!40000 ALTER TABLE `user_order_3` DISABLE KEYS */
;
INSERT
INTO
`user_order_3`
(
`id`
,
`user_name`
,
`user_id`
,
`user_mobile`
,
`sku`
,
`sku_name`
,
`order_id`
,
`quantity`
,
`unit_price`
,
`discount_amount`
,
`tax`
,
`total_amount`
,
`order_date`
,
`order_status`
,
`is_delete`
,
`uuid`
,
`ipv4`
,
`ipv6`
,
`ext_data`
,
`update_time`
,
`create_time`
)
VALUES
(
1
,
'小傅哥'
,
'xfg_JsEUcu'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'21630931065'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'7f595d4df9954b6788c987a20e23b765'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
),
(
2
,
'小傅哥'
,
'xfg_DhmjDx'
,
'+86 13521408***'
,
'13811216'
,
'《手写MyBatis:渐进式源码实践》'
,
'86253998065'
,
1
,
128
.
00
,
50
.
00
,
0
.
00
,
78
.
00
,
'2023-11-02 07:38:00'
,
0
,
0
,
'42dcfeae7c2c45eb9d6fb921a8a71104'
,
2130706433
,
X
'20010DB885A3000000008A2E03707334'
,
'{
\"
device
\"
: {
\"
machine
\"
:
\"
IPhone 14 Pro
\"
,
\"
location
\"
:
\"
shanghai
\"
}}'
,
'2023-11-02 15:38:00'
,
'2023-11-02 15:38:00'
);
/*!40000 ALTER TABLE `user_order_3` ENABLE KEYS */
;
UNLOCK
TABLES
;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */
;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */
;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */
;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */
;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */
;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */
;
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录