如果结果达到一定的行数,我想压缩它们。
客户端程序将解压结果并进行处理。
这是一台具有客户端/服务器架构的桌面电脑,一些客户端通过 VPN 连接。
当客户端连接时,它将向服务器发送数据。服务端处理完成后,客户端将从服务器下载更新的数据。
客户位于数个城镇,距离平均50-100公里。他们将通过Internet使用VPN连接。但这是最初的计划,尚未实施,使用VPN或其他方式。
如果结果达到一定的行数,我想压缩它们。
客户端程序将解压结果并进行处理。
这是一台具有客户端/服务器架构的桌面电脑,一些客户端通过 VPN 连接。
当客户端连接时,它将向服务器发送数据。服务端处理完成后,客户端将从服务器下载更新的数据。
客户位于数个城镇,距离平均50-100公里。他们将通过Internet使用VPN连接。但这是最初的计划,尚未实施,使用VPN或其他方式。
有一个COMPRESS函数,可将字符串压缩为二进制字符串。但是,根据您的需求,这可能并不能真正解决问题,特别是因为数据库记录通常已经非常紧凑,因此我不确定您会从尝试压缩结果集中获得多少好处。
一件需要小心的事情是过早的优化。如果您试图在正确识别实际瓶颈之前进行优化而不仅仅是盲目地尝试可能的瓶颈,往往会引入不必要的复杂性并实际上损害性能。
在这方面,我想问你是否确实在你的应用程序中确定了瓶颈?如果是这样,它在哪里,它的性质是什么?你在什么环境中工作?这是Web开发还是具有客户端/服务器架构的桌面应用程序?
也许您可以将这些额外信息添加到您的问题中,这样就可以更好地帮助您了?
大多数MySQL客户端都支持压缩(--compress选项)
但是你确定你想要在MySQL中执行这个任务吗?这听起来更像是Web或应用程序服务器的任务吗?
大多数web服务器支持使用gzip等压缩响应。
你有更多细节可以分享,包括问题是什么,你使用的平台和工具是什么吗?
MySQL支持压缩协议,但是取决于您用于连接数据库的工具,您如何利用协议将会不同。
压缩 (yā suō)
Compression is used if both client and server support zlib compression, and the client requests compression.
A compressed packet header is: packet length (3 bytes), packet number (1 byte), and Uncompressed Packet Length (3 bytes). The Uncompressed Packet Length is the number of bytes in the original, uncompressed packet. If this is zero then the data is not compressed.
When the compressed protocol is in use (that is, when the client has requested it by setting the flag bit in the Client Authentication Packet and the server has accepted it), either the client or the server may compress packets. However, compression will not occur if the compressed length is greater than the original length. Thus, some packets will be compressed while other packets are not compressed.
(参考资料)翻译为中文:
如果你提供更多有关连接方式的信息,我们可能会为您提供额外的信息。例如,在Connector/ODBC连接参数中,有一个标志,将“使用压缩客户端/服务器协议”。