我们平时在建表的时候,相信大家有时候会被告知再添加一个额外的字段来判断当前记录是否需要使用,也就是软删。我在公司也是严禁删除数据,只能使用软删。我刚开始也是以为是防止误删或者有一个记录留存,但是其实我们每个操作都会记录操作日志的,所以真实目的不是留存记录,而是为了避免mysql数据的碎片化。
什么是碎片化呢?就是我们在删除一条数据的时候,原来的空间会被留空,而如果一段时间大量删除数据会导致留空的空间越来越大,虽然mysql会在下一次添加记录的时候尝试使用这些留空的空间,利用率不会是100%,甚至会出现一条记录被分在的多个地方,这样在碎片空间的查询效率要远低于正常空间里面的,所以这才是不然直接删除数据的原因