有什么方法可以减少文本的大小吗?

Par*_*san 6 php mysql sql encoding

描述:我有一个庞大的MySQL数据库表.总大小约为10太字节.它只包含文本.

此数据库表中的示例文本:

在其他情况下,一些国家逐渐学会生产与以前只有美国和其他一些国家可以生产的相同的产品和服务.美国的实际收入增长放缓.

大约有500亿种不同的文本.

我试过了什么?

我试图将它们全部压缩.实际上它已经工作,减少了总大小.但是,我需要进行搜索,并且当它们位于zip文件中时我无法搜索任何数据.

我试过PHP的base64编码.它使我的示例文本数据为:

SW4gb3RoZXIgY2FzZXMsIHNvbWUgY291bnRyaWVzIGhhdmUgZ3JhZHVhbGx5IGxlYXJuZW QgdG8gcHJvZHVjZSB0aGUgc2FtZSBwcm9kdWN0cyBhbmQgc2VydmljZXMgdGhhdCBwcmV2 aW91c2x5IG9ubHkgdGhlIFUuUy4gYW5kIGEgZmV3IG90aGVyIGNvdW50cmllcyBjb3VsZC Bwcm9kdWNlLiBSZWFsIGluY29tZSBncm93dGggaW4gdGhlIFUuUy4gaGFzIHNsb3dlZC4 =

我想要完成什么?

我想在将它们发送到MySQL之前减少文本的大小.首先,我不知道我怎么能做这份工作.我正在考虑加密和解密数据.

所以,这是一个我想做的例子:

我想在存储之前加密文本数据.然后,我想从MySQL调用加密数据以便解密.

有什么方法可以减少文本的大小吗?Base64对我不起作用,还有其他方法吗?

Bab*_*aba 12

请注意既不是base64也不encryption 是为减少字符串长度而设计的.你应该看的是压缩,我认为你应该看看gzcompressgzdeflate

使用文本的解码版本的示例

$original = "In other cases, some countries have gradually learned to produce the same products and services that previously only the U.S. and a few other countries could produce. Real income growth in the U.S. has slowed." ;
$base64 = base64_encode($original);
$compressed = base64_encode(gzcompress($original, 9));
$deflate = base64_encode(gzdeflate($original, 9));
$encode = base64_encode(gzencode($original, 9));


$base64Length = strlen($base64);
$compressedLength = strlen($compressed) ;
$deflateLength  = strlen($deflate) ;
$encodeLength  = strlen($encode) ;

echo "<pre>";
echo "Using GZ Compress   =  " , 100 - number_format(($compressedLength / $base64Length ) * 100 , 2)  , "% of Improvement", PHP_EOL;
echo "Using Deflate       =  " , 100 - number_format(($deflateLength / $base64Length ) * 100 , 2)  , "% of Improvement", PHP_EOL;
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)

产量

Using GZ Compress   =  32.86%  Improvement
Using Deflate       =  35.71%  Improvement
Run Code Online (Sandbox Code Playgroud)