做淘宝的网站,登录wordpress数据库,什么自己做网站,区块链系统app开发一、背景
小王瞥了一眼历史记录表#xff0c;不禁惊呼#xff1a;“这表怎么这么大#xff1f;”同事们闻声纷纷围拢过来查看。仔细一瞧#xff0c;发现这个表的大小竟然超过了3G。主管随即指示小王打开相应的表数据检查#xff0c;发现其中存储了用户的权限信息#xf…一、背景
小王瞥了一眼历史记录表不禁惊呼“这表怎么这么大”同事们闻声纷纷围拢过来查看。仔细一瞧发现这个表的大小竟然超过了3G。主管随即指示小王打开相应的表数据检查发现其中存储了用户的权限信息这些权限数据被转换成了JSON字符串并直接入库。众人面面相觑小王更是感到困惑问道“这该如何是好”
大林子思索片刻建议道“或许我们可以尝试对JSON进行压缩。”小王疑惑地问“那能减少多少空间呢”大林子估算道“应该能够降低三分之二左右。”小王半信半疑毕竟都是字符串他觉得差别不会如此之大。为了证明自己的观点大林子立刻编写了一个示例并展示了一番压缩效果让在场的所有人都感到惊讶。
二、大林子的例子
public static void main(String[] args) throws IOException {// 原始的JSON字符串 内部数据不能展示可以替换自己的JSON字符串越大越明显String jsonString [{\id\: \11111\}];byte[] compressedData1 jsonString.getBytes();System.out.println(Pre-compressed data Length: compressedData1.length);// 将JSON对象转换为字符串System.out.println(Original JSON String: jsonString);// 压缩JSON字符串ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();GZIPOutputStream gzipOutputStream new GZIPOutputStream(byteArrayOutputStream);gzipOutputStream.write(jsonString.getBytes(UTF-8));gzipOutputStream.close();byte[] compressedData byteArrayOutputStream.toByteArray();System.out.println(Compressed Data Length: compressedData.length);// 解压缩数据并还原为JSON字符串ByteArrayInputStream byteArrayInputStream new ByteArrayInputStream(compressedData);GZIPInputStream gzipInputStream new GZIPInputStream(byteArrayInputStream);ByteArrayOutputStream decompressedOutputStream new ByteArrayOutputStream();byte[] buffer new byte[1024];int len;while ((len gzipInputStream.read(buffer)) ! -1) {decompressedOutputStream.write(buffer, 0, len);}gzipInputStream.close();String decompressedJsonString decompressedOutputStream.toString(UTF-8);System.out.println(Decompressed JSON String: decompressedJsonString);}