camunda-数据库快速增长问题

bjg7j2ky  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(414)

我的数据库有问题。它长得太快了。我使用的是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的大小。
提前谢谢。

0sgqnhkj

0sgqnhkj1#

也许您应该开始考虑在现有表上创建分区。
由于没有足够的关于上述表的信息,很难提供代码段,但下面提到的sql代码段可能会对您有所帮助:

ALTER TABLE data_table 
PARTITION BY RANGE( UNIX_TIMESTAMP(last_updated) ) ( 
PARTITION p_first VALUES LESS THAN (UNIX_TIMESTAMP('2000-01-01 00:00:00')), 
PARTITION p200001 VALUES LESS THAN (UNIX_TIMESTAMP('2005-01-01 00:00:00')), 
PARTITION p200501 VALUES LESS THAN (UNIX_TIMESTAMP('2010-01-01 00:00:00')), 
PARTITION p201001 VALUES LESS THAN (UNIX_TIMESTAMP('2015-01-01 00:00:00')),
PARTITION p_future VALUES LESS THAN (MAXVALUE) );

一旦创建了这些分区,就应该能够删除旧分区。

i2byvkas

i2byvkas2#

您将不得不查看过去一年中引入的历史生存时间(ttl)功能。可以定义删除旧示例的时间间隔。如果您仍然需要用于报告的数据,请考虑将其导出到适当的存储,也许camunda optimize/elastic是一个解决方案。简而言之:定义ttl并编写导出程序,在重要数据被删除之前将其存储在其他地方。
请记住,针对(camunda)流程应用程序的存储管理不是一件小事,这取决于您的流程的性质(直接运行与长时间运行)和您的审核需求,您将需要一个大型模式。

相关问题