我是mysql的新手,不确定压缩是如何工作的。基本上,我有一个20 am的原始文件,我正在加载到mysql中。我知道当我使用gzip压缩时,通常在2-4 4GB之间。所以我的问题是,mysql使用的是什么压缩(我可以改变它吗)?它是只应用于表本身中存储的数据,还是应用于文本?
下面是我的表格:
CREATE TABLE my_data (
`ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
`DATA` text NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;我的理解是,DATA并不存储在表本身中,而只是指向它的引用指针。我想知道压缩是应用于数据本身,还是仅应用于引用指针?
发布于 2012-06-07 10:48:31
来自mysql文档-
当表为压缩格式时,所有写入溢出页的数据都会按原样进行压缩;也就是说,InnoDB将zlib压缩算法应用于整个数据项。除了数据,压缩的溢出页还包含一个未压缩的头部和尾部,其中包括一个页面校验和和一个指向下一个溢出页的链接等。因此,如果数据是高度可压缩的,那么对于较长的BLOB、TEXT或VARCHAR列,可以节省大量的存储空间,就像文本数据(但不是以前压缩的图像)那样。
我确信对数据应用了压缩算法。
https://stackoverflow.com/questions/10924911
复制相似问题