小言_互联网的博客

对象生命周期管理设计

257人阅读  评论(0)

   

这是学习笔记的第 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

最后明天就是教师节了,祝老师桃李满天下

推荐一本书:

推荐理由:在游历中体悟生命意义、获得自我拯救的过程

个人新书 《MySQL DBA工作笔记》



转载:https://blog.csdn.net/weixin_36250635/article/details/100681415
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场