🐖为什么我的n8n数据库越来越大?

type
status
date
slug
summary
tags
category
icon
password
author
标签
第三方接入
如果你使用本教程的部署方法,或者使用官方默认的 Docker Compose 进行部署,那么在使用一段时间之后,会发现 n8n 的性能显著下降,并且数据库文件越来越大。
n8n 默认使用 sqlLite 进行数据存储,它是一种文件数据库,这意味着你不需要单独部署数据库,在备份 n8n 的时候就能一并备份走。
但与大多数文件数据库一样,当数据量过大的时候,它的性能会显著下降。
你可能会疑惑,你一共就建了几个 Workflow,数据库为什么会越滚越大呢?是因为 n8n 默认会把所有的执行结果(日志)存储在数据库中。
解决这个问题的方案也很简单,你只需要将下面三行代码添加到你 n8n Dorcker 的环境变量中:
这四行的作用分别是:
  1. EXECUTIONS_DATA_PRUNE 是否打开执行结果自动清理;
  1. EXECUTIONS_DATA_MAX_AGE 执行结果保留多长时间(小时);
  1. DB_SQLITE_VACUUM_ON_STARTUP 是否在数据库启动时进行一次清理;
  1. EXECUTIONS_DATA_PRUNE_MAX_COUNT 设置存储执行结果的最大条数;
你可以自行设置 EXECUTIONS_DATA_MAX_AGE 和 EXECUTIONS_DATA_PRUNE_MAX_COUNT 的数字大小,以满足你要保存的历史执行结果时长。
在生产环境长期、高频使用 n8n,建议还是使用 PostgreSQL 来作为 n8n 的数据库。如果你需要这个,可以参阅官方文档:
Workflow分享支持 n8n 中文教程发展
Loading...
目录