【DDL设计】操作记录表

前言

合理的表结构设计,不仅仅让我们后面扩展表方便,还会大大提升数据库性能

示例

计数类、记录业务操作类等场景,都可以采用以下表结构设计。

计数类

场景描述:

idtask_idsniff_validsniff_invalidsniff_reqversioncreate_timemodify_timedelete
11001

该表的作用是:每当有嗅探请求或者结果时,实时进行数据更新。比如‘嗅探结果有效’,则sniff_valid加1;‘嗅探结果无效’,则sniff_invalid加1;每次‘嗅探请求’,则sniff_req加1.

分析:

以上表结构有个很大的弊端:数据库的锁粒度太大。当采用Innodb存储引擎的时候,如果此处sniff_valid进行更新,就会把改行数据【锁】住,那么此时sniff_invalid和sniff_req也无法更新。 sniff_valid更新,与sniff_invalid和sniff_req无关,但是sniff_invalid和sniff_req还得等。 太浪费性能和时间了。

改进:

idtask_idrecord_typerecord_valueversioncreate_timemodify_timedelete
11001sniff_num
21001sniff_valid
31001sniff_invalid

业务操作类

场景描述:

idtask_idaudit_startaudit_endaudit_consumeversioncreate_timemodify_timedelete
11001

该表用来存储用户的操作记录,目前用户的操作记录有:审核开始时间、审核结束时间、审核耗时。但是后续可能大概率还会记录:任务生成时间、任务结束时间、任务耗时....操作。

你可能会想到可以预留几个字段,但是预留的字段毕竟属于下策:是实在不得已的时候才会采用。

改进:

idtask_idrecord_typerecord_valueversioncreate_timemodify_timedelete
11001audit_start
21001audit_end
31001audit_consume

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@来杯咖啡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值