面试题答案
一键面试表结构设计
- 商品ID:作为缓存表的主键,唯一标识每个商品,便于快速定位数据,类型通常为整数(如
INT
)。 - 商品名称:存储商品的名称,数据类型可以是字符串(如
VARCHAR
),长度根据实际商品名称长度合理设置。 - 商品价格:记录商品价格,根据价格的范围和精度要求,可选择
DECIMAL
类型,如DECIMAL(10, 2)
表示总长度10位,小数部分2位。
数据更新策略
- 主动更新:
- 当商品基本信息在源电商数据库发生变化时,在更新源数据库的同时,立即更新缓存表。例如,使用数据库事务确保源表和缓存表更新的一致性。
- 可以通过数据库触发器来实现部分场景下的自动更新,比如当商品价格字段更新时,自动触发缓存表对应记录的更新。
- 被动更新:
- 设置缓存数据的过期时间。例如,对于商品价格相对稳定的情况,可以设置较长的过期时间,如一天。过期后,下次查询时发现缓存数据已过期,从源数据库重新获取最新数据并更新缓存表。
- 定期任务检查。通过定时任务(如每天凌晨)扫描源数据库和缓存表,对比数据是否有变化,若有变化则更新缓存表。这种方式适用于数据更新频率较低且对实时性要求不是极高的场景。