我想使用 MYSQL 作为大量文件的存储系统。我只想读/写存储在列中的一部分数据(数据存储为字节),所以我不必将整个文件加载到应用程序中(因为它可以大于 GB)。因此,简而言之,我希望在 blob 列中进行随机读/写访问,而无需将整个数据加载到内存中。是否有可用于执行这些操作的函数?谢谢你。
MySQL 将blob 视为与字符串相同(或多或少):
BLOB值被视为二进制字符串(字节字符串)。它们没有字符集,排序和比较是基于列值中字节的数值。
所以所有常用的字符串函数都适用于 blob。特别是,您可以使用substring仅抓取 blob 的一部分。
也就是说,将数 GB 数据文件作为 BLOB 存储在关系数据库中并不是最好的做法。您最好将文件的元数据存储在数据库中,而将文件本身留在文件系统中;文件系统非常擅长管理文件,关系数据库擅长处理结构化数据。