MySQL软删除与唯一索引

问题

软删除(is_deleted字段)+ 唯一索引的经典坑:

当使用软删除时,已删除的记录仍占唯一索引,导致无法重新创建相同数据。

解决方案

  1. 联合唯一索引:将is_deleted加入唯一索引 (field, is_deleted)
  2. 逻辑删除时间戳:用deleted_at替代is_deleted,唯一索引包含deleted_at
  3. 归档表:删除记录移到归档表

Redis SDS

Redis的Simple Dynamic String相比C字符串:

  • O(1)获取长度
  • 杜绝缓冲区溢出
  • 减少内存重分配次数
  • 二进制安全

关联