繁体   English   中英

存储日志的最佳数据类型

[英]Best datatype to store logs

我有一个名为requests的MySQL表。 它发展得如此之快。 目前,它有300万行。 另外,当前的表引擎是“ InnoDB”。

几天前,我收到此错误:

错误1114(HY000):表已满

通过将其添加到MySQL配置中,我已经解决了这个问题(我想是暂时的):

innodb_data_file_path = ibdata1:10M:autoextend

但是有时候我的发球会掉下来,我必须重新启动它才能使用。 最近,我将桌子空了,摆脱了掉下来的麻烦。

但是很快就会充满。 知道如何解决该问题吗? 我应该为该表使用其他引擎吗? 我应该使用压缩的类型行吗? 要不然是啥?

注意,有时我需要从该表中进行选择,并且该表在列上有一个索引(除了pk)

您受到磁盘空间的限制。 必须密切注意并采取行动,然后才能达到“满桌”状态。

如果将数据存储在MyISAM表中,则可以花两倍的时间才能获取“表已满”。 如果您只是简单地写入磁盘文件(无数据库,无查询等),则可以在“磁盘已满”之前再进行一些压缩。

您是否需要“清除”旧数据? 这样,您就可以继续接收新数据,而无需触及“表已满”。 最好的方法是通过InnoDB和PARTITION BY RANGE(TO_DAYS(...)) 如果清除一个月以上的任何东西,请使用每日分区。 例如,对于90天,请使用每周分区。 更多讨论: http : //mysql.rjweb.org/doc.php/partitionmaint

您将如何处理数据? 分析一下吗? 搜索一下? 您打算进行哪些SQL查询? 回答那些; 可能还有其他提示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM