软删除字段用什么类型速度更快
方案1、使用int、smallint、tinyint
0正常、1删除
查询条件 is_delete = 0 、is_delete = 1
缺点,如果要记录删除时间需要再另外记录一个删除时间方案2、 使用datetime字段
deleted_at datetime
查询条件 deleted_at is no null
这两种方案在较多数据查询较多的情况下,性能差距大吗?
如果数据不多,不注重性能可以用deleted_at is null,全表扫描,如果性能至上方案1加索引会耗好点
实际查询语句一般会包含其它条件,这时已经走其它条件的索引了,所以性能差距微乎其微,可以这么选
要不考虑将delete_at转换成int存储?
int?
方案1 + 方案2