gpt4 book ai didi

MySql 使用 InnoDB 回收 blob 空间

转载 作者:可可西里 更新时间:2023-11-01 08:52:46 25 4
gpt4 key购买 nike

我需要构建一个包含大 BLOB 的表,该 BLOB 将占据行大小的 98%。但是,这个 BLOB 只会暂时保留在行中,会被移动到另一个位置,然后 BLOB 列将被设置为 NULL。 MySQL 可以重用这个空间还是它会一直是行的一部分?如果它不能自动重新使用,是否有另一种方法(比如优化表)可以用来手动回收这个空间?如果没有,我可能需要找到另一种解决方案来处理这组特定的数据。

最佳答案

听起来你肯定会更好地使用 Redis 或什至只是将你的 blob 存储在文件系统上。这实际上是我推荐的;将数据保存在文件中并将文件名放在表中。异步上传到 s3 完成后将其设置为空。如果您使用的是为处理大型对象而优化的文件系统,这将始终比插入数据库更快。

blob 的存储方式不仅取决于数据的长度,还取决于您实际使用的 mysql 版本。删除的行总是可以重用,当后续插入不重用空间时,可以使用优化表恢复。但是优化表将锁定该表。因此,您正在第二次减慢系统速度。

关于MySql 使用 InnoDB 回收 blob 空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com