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