我最近使用它从我的数据库中删除了超过 200 万行(我想清除用户不再存在的任何用户历史记录)。我正在使用 Django 简单历史。
active_ids = User.objects.values_list("id", flat=True)
User.history.filter(~Q(id__in=active_ids)).delete()
这花了大约 5 分钟,并删除了我想要的所有行。但是,在我运行该操作之前,我的表大小约为 900 MB。删除行后,它仍然是 700 MB——比我预期的要多得多。经过进一步检查,该表的 index_length 大小看起来仍然很大,为 424 MB。我认为它实际上并没有下降。
这个索引大小会下降吗?User 模型有一些 db_indices,比如 id、username 和 email。