我在InnoDB
表中有+10万篇文章(200到1000个单词)。我在使用article
字段时只使用此类查询:
SELECT article,title,other_fields from table where id=123;
在MySQL中存储文本最“空间有效”的方法是什么?
现在表格大小比如 100GB,我的目标是尽可能少地,而不会导致太多的性能权衡。
答案 0 :(得分:2)
正如其他人所指出的,innodb compressed rows是一种选择。
您需要确保file_format系统参数设置为Barracuda。尝试更改以在行格式为默认Antelope的情况下压缩行格式可能会导致浪费的表重建仅为您提供行格式不受支持的警告。
我发现各种数据集上的压缩效果不是很好,并且会产生大量的cpu开销,特别是在涉及连接时会影响性能。
我一直在尝试使用TokuDB存储引擎来获取更好的速度,以及其他好处(例如快速在线架构更改)等。{/ p>
答案 1 :(得分:1)
MyISAM比InnoDB更加空间友好,您可以从那个开始。
答案 2 :(得分:0)
根据内容,您可以使用巧妙的无损压缩算法获得一些好的/有用的结果。除此之外,您可以将文本分组,并将其压缩,以获得更好的结果,而不会显着降低性能。
所有关于空间/速度的比例。