前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对象生命周期管理设计

对象生命周期管理设计

作者头像
jeanron100
发布2019-09-17 14:06:46
5020
发布2019-09-17 14:06:46
举报

这是学习笔记的第 2096 篇文章

最近两天梳理了下生命周期管理的内容,在重新梳理的过程中,原先一些没想明白的点在这个过程中也整理明白了,而整个改进的过程在重新梳理时,发现不会大改,而是在入口和过滤的部分做一些补充,为此我也准备了如下的一些测试案例,准备把现有的流程能够较为完整的走一遍。

其实这个过程中反复琢磨的东西,本质上还是模型。

这是一个让我相见恨晚的设计图,折腾了一圈,目前来看,能够满足我预设的绝大多数场景。

接下来我把一些测试计划和数据模型的设计内容也总结出来。

测试计划

测试case

测试类型

测试描述

预期结果

备注

1

初始化表

初始化表

mysql_tab_baseline(insert) mysql_snap_tab_col_info(insert) mysql_snap_tab_index_info(insert)

2

初始化表

初始化库

mysql_db_baseline(insert)

3

DDL-新增

新建表

mysql_snap_tab_info(insert) mysql_tab_baseline(insert) mysql_snap_tab_col_info(insert) mysql_snap_tab_index_info(insert)

4

DDL-修改表

修改表-新增字段

mysql_snap_tab_info(insert) mysql_snap_tab_col_info(insert)

5

DDL-修改表

修改表-修改字段

mysql_snap_tab_info(insert) mysql_snap_tab_col_info(insert)

6

DDL-修改表

修改表-删除字段

mysql_snap_tab_info(insert) mysql_snap_tab_col_info(insert)

7

DDL-修改表

修改表-新增索引

mysql_snap_tab_info(insert) mysql_snap_tab_index_info(insert)

8

DDL-修改表

修改表-删除索引

mysql_snap_tab_info(insert) mysql_snap_tab_index_info(insert)

9

DDL-删除表

truncate表数据

待定

10

DDL-删除表

drop表数据

mysql_tab_baseline(update)

11

DML

insert,delete,update

mysql_snap_hot_tab_info(insert)

mysql_life_cycle_snapshot

Field

Type

Null

Key

Default

Extra

snap_id

int(11)

NO

PRI

NULL

auto_increment

ip_addr

varchar(50)

NO

NULL

db_port

varchar(100)

NO

NULL

duration

int(11)

YES

NULL

start_time

datetime(6)

YES

NULL

end_time

datetime(6)

YES

NULL

memo

varchar(500)

YES

NULL

create_time

datetime(6)

NO

NULL

mysql_tab_baseline

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

PRI

NULL

auto_increment

snap_id

int(11)

NO

NULL

快照id只作为初始状态的标识

ip_addr

varchar(50)

NO

NULL

db_port

varchar(50)

NO

NULL

table_schema

varchar(50)

NO

NULL

table_name

varchar(50)

NO

NULL

只有表的最新状态信息

tab_create_time

datetime(6)

YES

NULL

表的创建时间

create_time

datetime(6)

NO

NULL

变更时间

table_comment

varchar(50)

NO

NULL

table_ddl

longtext

NO

NULL

初始化的创建语句

memo

varchar(500)

NO

NULL

table_status

varchar(50)

NO

NULL

ACTIVE,RECYCLE,INACTIVE

avg_row_length

varchar(50)

NO

NULL

初始状态的数值

data_length

varchar(50)

NO

NULL

index_length

varchar(50)

NO

NULL

初始状态的数值

tab_last_ddl_time

datetime(6)

YES

NULL

最新的DDL时间

tab_last_dml_time

datetime(6)

YES

NULL

最新的DML时间

table_collation

varchar(50)

NO

NULL

table_engine

varchar(50)

NO

NULL

table_row_format

varchar(50)

NO

NULL

table_rows

varchar(50)

NO

NULL

初始状态的数值

mysql_snap_tab_info

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

PRI

NULL

auto_increment

snap_id

int(11)

NO

NULL

ip_addr

varchar(50)

NO

MUL

NULL

db_port

varchar(50)

NO

NULL

table_schema

varchar(50)

NO

NULL

table_name

varchar(50)

NO

NULL

create_time

datetime(6)

NO

NULL

tab_last_ddl_time

datetime(6)

NO

NULL

tab_last_dml_time

datetime(6)

YES

NULL

table_engine

varchar(50)

NO

NULL

table_row_format

varchar(50)

NO

NULL

table_collation

varchar(50)

NO

NULL

table_rows

varchar(50)

NO

NULL

avg_row_length

varchar(50)

NO

NULL

data_length

varchar(50)

NO

NULL

index_length

varchar(50)

NO

NULL

table_status

varchar(50)

NO

NULL

table_ddl

longtext

NO

NULL

memo

varchar(500)

NO

NULL

change_sub_type

varchar(50)

NO

NULL

change_type

varchar(50)

NO

NULL

table_comment

varchar(50)

NO

NULL

mysql_snap_tab_col_info

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

PRI

NULL

auto_increment

snap_id

int(11)

NO

NULL

ip_addr

varchar(50)

NO

MUL

NULL

db_port

varchar(50)

NO

NULL

table_schema

varchar(50)

NO

NULL

table_name

varchar(50)

NO

NULL

column_id

int(11)

YES

NULL

column_name

varchar(50)

NO

NULL

column_type

varchar(50)

NO

NULL

column_default

varchar(50)

YES

NULL

column_isnull

varchar(50)

NO

NULL

create_time

datetime(6)

NO

NULL

memo

varchar(500)

NO

NULL

mysql_snap_tab_index_info

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

PRI

NULL

auto_increment

snap_id

int(11)

NO

NULL

ip_addr

varchar(50)

NO

MUL

NULL

db_port

varchar(50)

NO

NULL

table_schema

varchar(50)

NO

NULL

table_name

varchar(50)

NO

NULL

index_name

varchar(50)

NO

NULL

column_index

int(11)

YES

NULL

column_name

varchar(50)

NO

NULL

column_orderby

varchar(50)

NO

NULL

create_time

datetime(6)

NO

NULL

memo

varchar(500)

NO

NULL

mysql_snap_hot_tab_info

Field

Type

Null

Key

Default

Extra

id

int(11)

NO

PRI

NULL

auto_increment

snap_id

int(11)

NO

NULL

ip_addr

varchar(50)

NO

MUL

NULL

db_port

varchar(50)

NO

NULL

table_schema

varchar(50)

NO

NULL

table_name

varchar(50)

NO

NULL

create_time

datetime(6)

NO

NULL

tab_last_ddl_time

datetime(6)

NO

NULL

tab_last_dml_time

datetime(6)

YES

NULL

table_engine

varchar(50)

NO

NULL

table_row_format

varchar(50)

NO

NULL

table_collation

varchar(50)

NO

NULL

table_rows

varchar(50)

NO

NULL

avg_row_length

varchar(50)

NO

NULL

data_length

varchar(50)

NO

NULL

index_length

varchar(50)

NO

NULL

table_status

varchar(50)

NO

NULL

memo

varchar(500)

NO

NULL

hot_degree

int(11)

NO

NULL

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这是学习笔记的第 2096 篇文章
  • 最近两天梳理了下生命周期管理的内容,在重新梳理的过程中,原先一些没想明白的点在这个过程中也整理明白了,而整个改进的过程在重新梳理时,发现不会大改,而是在入口和过滤的部分做一些补充,为此我也准备了如下的一些测试案例,准备把现有的流程能够较为完整的走一遍。
  • 测试计划
    • mysql_life_cycle_snapshot
      • mysql_tab_baseline
        • mysql_snap_tab_info
          • mysql_snap_tab_col_info
            • mysql_snap_tab_index_info
              • mysql_snap_hot_tab_info
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档