gpt4 book ai didi

c++ - 如何使用 zlib.h 解压缩 m MYSQL_RES 中的 COMPRESSED BLOB,而不在 mysql 查询中使用 UNCOMPRESS

转载 作者:行者123 更新时间:2023-11-29 23:28:47 25 4
gpt4 key购买 nike

我使用 insert compress {hex data} 将数据存储到 innodb 表 BLOB 列中。我需要使用 mysql c api 以编程方式选择压缩数据并在应用程序级别解压缩。我可以使用 zlib.h 和解压缩函数或 inflate/deflate 方法来执行此操作吗?

我无法在 mysql 查询中使用解压缩,因为它是一个很大的结果集,并且数据通过网络传输到不同的服务器上。

例如:

MYSQL_RES *results = NULL;
MYSQL_ROW row;

results = exec_query();
while ( row = mysql_fetch_row(results) )
{
// row[0] = uncompressed size
// row[1] = compressed size
// row[2] = compressed blob

// does MYSQL "INSERT COMPRESS( {data} ) INTO ... " use LZ77?
// will this work?
// uncompress ( Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
}

最佳答案

我不知道你做得是否正确,我无法理解你想要什么。

BLOB 基本上用于存储二进制数据,如图像、视频等。

因此,您逐字节存储它们并检索相同的内容。

此外,您希望在此处压缩。

因此,压缩字节并存储。在检索时解压缩它。

示例:

select uncompress(compress('hello world')) as sample;

enter image description here

本教程 here展示如何使用 MySQL C API 将图像插入 MySQL DB。

关于c++ - 如何使用 zlib.h 解压缩 m MYSQL_RES 中的 COMPRESSED BLOB,而不在 mysql 查询中使用 UNCOMPRESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737108/

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