我的数据库有问题。它长得太快了。我使用的是mysql 5.7.24、spring引导和历史级审计。现在我的数据库是~100gb。
有人知道如何缩小数据库大小的技巧吗?我可以从act\u ge\u bytearray中删除字节数组还是将一些历史数据移到另一个数据库中?
如果我将一些历史数据移动到另一个数据库,如何从历史服务访问它?
我的表的当前大小是:
act\u hi\u varinst=>10.66 gb
act\U hi\U procinst=>0.46 gb
act\U hi\U taskinst=>0.01 gb
act\u hi\u Actist=>15.92 gb
实际容量=>29.49 gb
act\u hi\u detail=>16.02 gb
p、 我已经开始修改进程,使用小的(简单的)变量来代替“大的”变量——太大的序列化对象,以减小act\u hi\u varinst的大小。
提前谢谢。
2条答案
按热度按时间0sgqnhkj1#
也许您应该开始考虑在现有表上创建分区。
由于没有足够的关于上述表的信息,很难提供代码段,但下面提到的sql代码段可能会对您有所帮助:
一旦创建了这些分区,就应该能够删除旧分区。
i2byvkas2#
您将不得不查看过去一年中引入的历史生存时间(ttl)功能。可以定义删除旧示例的时间间隔。如果您仍然需要用于报告的数据,请考虑将其导出到适当的存储,也许camunda optimize/elastic是一个解决方案。简而言之:定义ttl并编写导出程序,在重要数据被删除之前将其存储在其他地方。
请记住,针对(camunda)流程应用程序的存储管理不是一件小事,这取决于您的流程的性质(直接运行与长时间运行)和您的审核需求,您将需要一个大型模式。