Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最重要的是什么;“有效空间”;在MySQL中存储文本的方法?_Mysql_Sql_Optimization - Fatal编程技术网

最重要的是什么;“有效空间”;在MySQL中存储文本的方法?

最重要的是什么;“有效空间”;在MySQL中存储文本的方法?,mysql,sql,optimization,Mysql,Sql,Optimization,我在InnoDB表格中有超过1000万篇文章(200到1000字)。我仅在处理文章字段时使用此类型的查询: SELECT article,title,other_fields from table where id=123; 在MySQL中存储文本最“节省空间”的方式是什么? 现在表的大小是100GB,我的目标是在不造成太多性能折衷的情况下使其尽可能小。MyISAM比InnoDB更便于空间使用,您可以从这个开始。根据内容的不同,使用一种聪明的无损压缩算法,您可能会得到一些好的/有用的结果。除此

我在
InnoDB
表格中有超过1000万篇文章(200到1000字)。我仅在处理
文章
字段时使用此类型的查询:

SELECT article,title,other_fields from table where id=123;
在MySQL中存储文本最“节省空间”的方式是什么?


现在表的大小是100GB,我的目标是在不造成太多性能折衷的情况下使其尽可能小。

MyISAM比InnoDB更便于空间使用,您可以从这个开始。

根据内容的不同,使用一种聪明的无损压缩算法,您可能会得到一些好的/有用的结果。除此之外,您可以将文本分组成批,并将其压缩,以获得更好的结果,而不会导致性能显著下降


这都是关于空间/速度的比例。

正如其他人所指出的,innodb是一种选择

不过,您需要确保您的file_format系统参数设置为Barracuda。如果试图更改以压缩行格式(其中行格式是默认的羚羊格式),则可能会导致浪费表的重新生成,只会警告您不支持行格式

我发现各种数据集上的压缩不是很好,会带来大量cpu开销,特别是在涉及连接的情况下会影响性能


我一直在试验mysql存储引擎,它似乎能以更快的速度提供更好的压缩比,还有其他好处(例如快速在线模式更改)。

SELECT不“存储”。你的意思是“显示”吗?我不是本地人,但可能你误读了这个问题?是的,代码的包含确实让我发疯了,对不起。好吧,我刚刚添加了一个例子。删除没有人再读的旧文章?