Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Camunda-数据库快速增长问题_Java_Mysql_Spring Boot_Camunda - Fatal编程技术网

Java Camunda-数据库快速增长问题

Java Camunda-数据库快速增长问题,java,mysql,spring-boot,camunda,Java,Mysql,Spring Boot,Camunda,我的数据库有问题。它长得这么快。我使用的是MySQL 5.7.24、Spring引导和历史级审计。现在我的数据库是~100GB 有人知道如何减小数据库大小的技术或技巧吗?我是否可以从ACT_GE_BYTEARRAY中删除字节数组,或者将一些历史数据移动到另一个数据库 如果我将一些历史数据移动到另一个数据库,如何从历史服务访问它 我的表格的当前大小为: ACT_HI_VARINST=>10.66 GB ACT\U HI\U PROCINST=>0.46 GB ACT_HI_TASKINST=>0

我的数据库有问题。它长得这么快。我使用的是MySQL 5.7.24、Spring引导和历史级审计。现在我的数据库是~100GB

有人知道如何减小数据库大小的技术或技巧吗?我是否可以从ACT_GE_BYTEARRAY中删除字节数组,或者将一些历史数据移动到另一个数据库

如果我将一些历史数据移动到另一个数据库,如何从历史服务访问它

我的表格的当前大小为:

  • ACT_HI_VARINST=>10.66 GB
  • ACT\U HI\U PROCINST=>0.46 GB
  • ACT_HI_TASKINST=>0.01 GB
  • ACT_HI_ACTINST=>15.92 GB
  • ACT_GE_BYTEARRAY=>29.49 GB
  • ACT_HI_细节=>16.02 GB
另外,我已经开始修改流程,使用小(简单)变量而不是“大”变量—太大的序列化对象,以减小ACT\u HI\u VARINST的大小


提前感谢。

也许您应该开始考虑在现有表上创建分区

由于没有足够的关于上述表的信息,所以很难提供代码段,但下面提到的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) );

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

您必须查看去年引入的历史生存时间(TTL)功能。您可以定义删除旧实例的时间间隔。 如果您仍然需要报告的数据,请考虑将其导出到合适的存储区,CAMUDA优化/弹性可能是解决方案。 简而言之:定义TTL并编写导出程序,在删除重要数据之前将其存储在其他地方


请记住,(camunda)流程应用程序的存储管理不是一件小事,这取决于您流程的性质(直接运行与长时间运行)和您的审核要求,您将需要一个大型架构。

“100GB”只是一个相对值。。。你有10K或10M的实例运行吗?每天大约有10K实例运行。谢谢你,我会考虑弹性搜索。所有历史数据都可以使用弹性搜索引擎存储?camunda是否同时在两个存储中存储数据(例如mysql数据库和弹性搜索)?我这样问是因为我想在一段时间后删除历史数据,而不想让它与弹性搜索同步,因为我必须以某种方式进行报告。按日期范围划分?