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