MySQL中是否有一个函数可以压缩查询返回的结果?

时间:2009-03-01 02:45:16

标签: sql mysql

如果结果达到一定数量的行,我想压缩结果。

然后客户端程序将解压缩结果和进程。

这是一个具有客户端/服务器架构的桌面,一些客户端通过vpn连接。

当客户端连接时,它会将数据发送到服务器。服务器完成处理后,客户端将从服务器下载更新的数据。

客户位于几个城镇,平均50-100公里。远。他们将使用vpn通过互联网连接。但这是最初的计划,尚未实施,使用vpn或其他手段。

3 个答案:

答案 0 :(得分:3)

COMPRESS函数可用于将字符串压缩为二进制字符串。但是,根据您的需求可能无法真正解决问题,特别是因为数据库记录本身通常已经非常紧凑,因此我不确定您尝试进一步压缩结果集会获得多少好处。

您需要注意的一件事是过早优化。如果您在正确识别实际瓶颈之前尝试进行优化而不是盲目地拍摄可能的瓶颈,通常情况下您可能会引入不必要的复杂性并实际上损害性能。

在那种情况下,我会问你是否确实在你的申请中发现了瓶颈?如果是这样,究竟是什么,它的本质是什么?你在做什么环境?这个Web开发或桌面是否具有客户端/服务器架构?

也许您可以在问题中添加一些额外信息,然后就可以更好地为您提供帮助?

答案 1 :(得分:2)

大多数MySQL客户端都支持压缩(--compress option)

但是你确定要在MySQL中这样做吗?这听起来更像是Web或应用程序服务器的任务?

大多数Web服务器都支持使用gzip等压缩响应

您是否有更多详细信息可以分享问题所在以及您使用的平台和工具?

答案 2 :(得分:1)

MySQL支持压缩协议,但根据您用于连接数据库的工具,您使用协议的方式会有所不同。

  

<强>压缩

     

如果客户端和客户端都使用压缩   服务器支持zlib压缩,和   客户端请求压缩。

     

压缩包头是:包   长度(3个字节),包号(1   字节)和未压缩的数据包长度   (3个字节)。未压缩包   长度是中的字节数   原始的,未压缩的数据包。如果这   为零然后数据不是   压缩。

     

使用压缩协议时   (也就是说,当客户有   通过设置标志位来请求它   在客户端验证包中   并且服务器已接受它),   客户端或服务器可以   压缩包。但是,压缩   压缩后不会发生   长度大于原件   长度。因此,一些数据包将是   压缩而其他数据包不是   压缩。

reference

如果您提供有关如何连接的更多信息,我们可能会为您提供其他信息。例如,在Connector / ODBC Connection参数中,有一个标志,它将“使用压缩的客户端/服务器协议”。