软删除字段用什么类型速度更快

  1. 方案1、使用int、smallint、tinyint
    0正常、1删除
    查询条件 is_delete = 0 、is_delete = 1
    缺点,如果要记录删除时间需要再另外记录一个删除时间

  2. 方案2、 使用datetime字段
    deleted_at datetime
    查询条件 deleted_at is no null

这两种方案在较多数据查询较多的情况下,性能差距大吗?

讨论数量: 6

如果数据不多,不注重性能可以用deleted_at is null,全表扫描,如果性能至上方案1加索引会耗好点

1个月前 评论

实际查询语句一般会包含其它条件,这时已经走其它条件的索引了,所以性能差距微乎其微,可以这么选

  1. 需要记录删除时间:deleted_at datetime
  2. 不用记录删除时间: is_delete tinyint
  3. 还在纠结选择哪种:deleted_at datetime
1个月前 评论

要不考虑将delete_at转换成int存储?

1个月前 评论

int?

1个月前 评论
Lotta 1个月前
laradocs

方案1 + 方案2

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!