【问题标题】:need mysql compatible compress()/decompress() for JavaJava 需要 mysql 兼容的 compress()/decompress()
【发布时间】:2012-07-03 10:01:22
【问题描述】:

我正在考虑将 MySql compress() 函数应用于一个 varchar 字段,并且每列的字符数往往从几千个字符到一百万个以上。文本几乎是普通的英语,所以我得到了 8 比 1 或更好的压缩。由于我有数百万条记录,并且很少想真正查看数据,因此压缩似乎是一个很好的工程折衷方案。

我需要在 Java 中进行大部分处理,并且 zip、gzip 和 bzip2 有很好的实现。所以这很酷。

但我真的很想能够使用标准的 MySql 客户端进行查询,例如

选择解压(longcolumn) where ...

所以我希望我的 java 代码使用与内置函数相同或兼容的压缩算法。我找到的文档说“使用 zlib 等压缩库编译”

这个有点模糊,我怎么知道具体用什么?

=== 已编辑 == 明确地说,我希望能够使用“mysql”客户端程序进行调试,所以像:

选择解压(longcolumn) where ...

根本不使用Java。但我想使用 JDBC 进行更新和插入。 而主线使用,得先拿到压缩博客,然后解压。某种包装器或 ZipInputStream 很好。

【问题讨论】:

    标签: mysql compression data-compression


    【解决方案1】:

    我不确定,但我会尝试用InflaterInputStream() 包装输出:

    ResultSet resultSet = statement.executeQuery("SELECT blobfield FROM table");
    InputStream stream = new InflaterInputStream(resultSet.getBlob(1).getBinaryStream());
    

    http://docs.oracle.com/javase/1.4.2/docs/api/java/util/zip/InflaterInputStream.html 已移至https://docs.oracle.com/javase/7/docs/api/java/util/zip/InflaterInputStream.html

    您可能也会对这篇博文感兴趣: http://www.mysqlperformanceblog.com/2012/05/30/data-compression-in-innodb-for-text-and-blob-fields/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 2010-11-02
      相关资源
      最近更新 更多