java GZIPOutputStream性能如何提升?

当前业务为查询库内数据压缩为gz压缩包,然后上传。现在速度很慢,已经尝试优化sql,sql查询速度提升了7倍还是无法满足需求,如何提升gz压缩速度呢?
部分代码如下:

gos = new java.util.zip.GZIPOutputStream(new BufferedOutputStream(new FileOutputStream(new File(localPath+fileName+".gz"+fileNameCrSuffix)),2*1024*1024),2*1024*1024);
        var processTime1 = System.currentTimeMillis();
        ESB.log.info(objInfo.name+"执行DTL,querysqlinfo:"+squerySqlStr);
        stmt = threadDbConn.prepareStatement(querySqlStr);
        //stmt.setFetchSize(10000);
        var sindex = 1;
        if(beginValue!=null&&endValue!=null){//判断是否分段处理
            setValue(stmt,sindex,beginValue,tempInfo.fdValueType);
            sindex++;
            setValue(stmt,sindex,endValue,tempInfo.fdValueType);
            sindex++;
        }
        if(sqlValues!=null){
            for(var j=0;j<sqlValues.length;j++){
                var index = j+sindex;
                setValue(stmt,index,sqlValues[j][1],sqlValues[j][0]);
            }
        }
        var rs = stmt.executeQuery();
        var processTime2 = System.currentTimeMillis();
        while(rs.next()){

            gos.write(rs.getString(1).getBytes(charSet));
        }
        rs.close();
        stmt.close();
        gos.finish();
        gos.flush();
        gos.close();
        var processTime3 = System.currentTimeMillis();

(建议先排查下,是不是你的磁盘IO拖慢了速度)
如果你真的认为是压缩算法耗时,那可以改成多线程来提升,毕竟现在的CPU都是多核。
将从数据库读取的原始数据放到一个queue中,再启动多个线程从queue中取数据并压缩。然后将压缩后的数据,按顺序写盘