mysql数据库文本压缩_url文本压缩(不缩短)并存储在mysql中

我在mysql中有url表,它只有两个字段id和varchar(255)用于url.目前有超过5000万网址,我的老板刚刚给出了关于我们当前项目扩展的线索,这将导致在该网址表中添加更多网址,并且预计在该网址中间的数字大约为1.5亿.明年.

目前数据库大小约为6GB,所以我可以肯定地说,如果事情保持相同,那么它将超过20GB,这是不好的.所以,我正在考虑一些可以减少url存储磁盘空间的解决方案.

我还想明确表示这个表不是一个繁忙的表,并且在momen上没有太多查询所以我只是想节省磁盘空间,更重要的是我希望探索短文本压缩的新想法及其在mysql中存储

但是将来该表也可以被大量访问,因此在时间到来之前更好地优化表.

我工作了很多,将URL更改为数字形式并使用BIGINT存储,但因为它有64位的限制,所以它没有很好地工作.同样是BIT数据类型的问题,也强加了64位的限制.

转换为数字形式背后的想法基本上是8字节BIGINT存储19位数,所以如果每个数字指向所有可能字符的字符集中的字符,那么如果所有字符的范围都是1-10,则它可以存储8个字节中的19个字符.在现实世界的场景中,有52个英文字符和10个数字加上几个符号,所以它大约100个字符集.因此,在最坏的情况下,BIGINT仍然可以指向6个字符,是的,它不是最终的判决,它仍然需要一些锻炼,以确切地知道每个数字指向的是10位数或30位数或80位但你已经有了很多我正在考虑的想法.

更重要的是,由于url的长度可变,所以我也试图节省小url的磁盘空间,所以我不想给出固定长度的列类型.

我也研究了一些文本压缩算法,如smaz和Huffman压缩算法,但不太相信,因为他们使用某种字典词,但我正在寻找一个干净的方法.

而且我不想使用二进制数据类型,因为它也需要太多像varchars一样的空格.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值