Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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_Database Performance - Fatal编程技术网

MySQL非常大的表大小

MySQL非常大的表大小,mysql,database-performance,Mysql,Database Performance,我们的组织使用MySQL作为他们的heklpdesk票证系统,其中有一个表,有14k行,表为5.7GB!这是桌子的结构 你知道为什么这张桌子会变得这么大吗?你知道我该怎么缩小它吗?我已经运行了修复、检查和优化操作,我正处于清除旧记录的边缘,但我想不出是什么让这个表如此之大!大量的中间文本?您可以将内容字段移动到另一个表中 像 然后仅在需要时根据ticketpostid获取内容。5 GB按照现代标准是中小型,而不是大型:)您是否也在此表中插入了邮件正文。如果是,则此表的大小因邮件正文文本而增大。

我们的组织使用MySQL作为他们的heklpdesk票证系统,其中有一个表,有14k行,表为5.7GB!这是桌子的结构


你知道为什么这张桌子会变得这么大吗?你知道我该怎么缩小它吗?我已经运行了修复、检查和优化操作,我正处于清除旧记录的边缘,但我想不出是什么让这个表如此之大!大量的中间文本?

您可以将内容字段移动到另一个表中


然后仅在需要时根据ticketpostid获取内容。

5 GB按照现代标准是中小型,而不是大型:)您是否也在此表中插入了邮件正文。如果是,则此表的大小因邮件正文文本而增大。
contents
列似乎是罪魁祸首。您是否可以运行查询以选择内容列的
平均值(字符长度(内容))
?+1。如果票证系统只是将邮件正文转储到数据库中,那么这些正文还包含任何附件。我曾经设置过一个OTRS实例,默认情况下是这样做的。它在几天内就填满了允许的最大MySQL DB大小100MB…内容的平均长度是425089.7,所以我猜这就是罪魁祸首,将该数字乘以14000,在5GB的范围内就不会有太多了,除了归档之外,我们还可以做什么呢!那个么他将把5gb的数据移动到另一个表中?如果您只是将数据移动到另一个表中,那么这可能会产生很大的影响。中文本(blob)列作为指针(9到12字节)存储在MySQL中。实际blob存储在表数据之外。只要您没有在查询中引用blob列,该列在其中就不会有明显的区别。@Ami您是100%正确的。如果执行SELECT*FROM表,它将读取BLOB并导致问题。但是,如果查询是SELECT TICKTPOSTID FROM table(例如,从表中选择),则拆分为两个表并不会提高性能。这个问题是关于什么的,仍然有点神秘。
 ticketpostid |   contents  |
_____________________________