我在 mysql innodb 数据库上运行了以下命令,并惊讶地发现磁盘使用量没有变化,尽管这些列包含大约 150gb 的长文本形式的数据。
update incidents set xml = NULL;
该数据库以前存储非常大的原始 xml 文件,而不是指向存储在磁盘上的文件副本的指针。不,将许多大文件直接存储在数据库中的不良做法与我的问题无关。
我想知道的是为什么在执行我希望将列中的所有值设置为空的命令后数据似乎仍然占用磁盘空间,从而从数据库中擦除旧数据。是的,我知道 drop 命令可能更适合我的需要,但目前我只是想了解为什么上述命令没有按我预期的方式运行。