[英]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.