Open VOfficial404 opened 2 weeks ago
sqlite文件太大可能也放不进去,印象中是单文件不能超过100MB
sqlite文件太大可能也放不进去,印象中是单文件不能超过100MB
可以对sqlite设置一下自动释放内存,这样sqlite文件就小得多
或者用脚本固定时间执行一下VACUUM就行
是这样运用吗?
是这样运用吗?
我都是在在进入数据库执行的,还真没在外面执行过,你可以把db的测试文件拉一个下来,然后测试一下
收到大佬,数据库我不熟,回头试下先
收到大佬,数据库我不熟,回头试下先
直接VACUUM如果数据库有问题压缩不了一点(341M→320M),建议是导出后在导入 这个我用着没问题
#!/bin/bash
# 定义数据库文件名
OLD_DB="sqlite.db"
NEW_DB="new.sqlite.db"
TMP_FILE="tmp.sql"
# 记录开始时间
START_TIME=$(date +"%Y-%m-%d %H:%M:%S")
echo "开始时间: $START_TIME"
# 导出数据
sqlite3 "$OLD_DB" <<EOF
.output $TMP_FILE
.dump
.quit
EOF
# 检查导出是否成功
if [ $? -ne 0 ]; then
echo "数据导出失败!"
exit 1
fi
# 导入到新库
sqlite3 "$NEW_DB" <<EOF
.read $TMP_FILE
.quit
EOF
# 检查导入是否成功
if [ $? -ne 0 ]; then
echo "数据导入失败!"
exit 1
fi
# 覆盖原库并优化
mv -f "$NEW_DB" "$OLD_DB"
sqlite3 "$OLD_DB" 'VACUUM;'
# 清理临时文件
rm -f "$TMP_FILE"
# 重启服务
supervisorctl restart nezha
# 记录结束时间
END_TIME=$(date +"%Y-%m-%d %H:%M:%S")
echo "结束时间: $END_TIME"
echo "数据库迁移和优化完成!"
收到大佬,数据库我不熟,回头试下先
直接VACUUM如果数据库有问题压缩不了一点(341M→320M),建议是导出后在导入
这个我用着没问题
#!/bin/bash # 定义数据库文件名 OLD_DB="sqlite.db" NEW_DB="new.sqlite.db" TMP_FILE="tmp.sql" # 记录开始时间 START_TIME=$(date +"%Y-%m-%d %H:%M:%S") echo "开始时间: $START_TIME" # 导出数据 sqlite3 "$OLD_DB" <<EOF .output $TMP_FILE .dump .quit EOF # 检查导出是否成功 if [ $? -ne 0 ]; then echo "数据导出失败!" exit 1 fi # 导入到新库 sqlite3 "$NEW_DB" <<EOF .read $TMP_FILE .quit EOF # 检查导入是否成功 if [ $? -ne 0 ]; then echo "数据导入失败!" exit 1 fi # 覆盖原库并优化 mv -f "$NEW_DB" "$OLD_DB" sqlite3 "$OLD_DB" 'VACUUM;' # 清理临时文件 rm -f "$TMP_FILE" # 重启服务 supervisorctl restart nezha # 记录结束时间 END_TIME=$(date +"%Y-%m-%d %H:%M:%S") echo "结束时间: $END_TIME" echo "数据库迁移和优化完成!"
感谢大佬,回头我试下,处理后的数据稳吗?没掉吧?
感谢大佬,回头我试下,处理后的数据稳吗?没掉吧?
稳,本身也是数据库炸了救数据库的操作,自测是没丢数据的
如题 哪吒探针的sqlite文章随着使用会越来越大 根据GitHub的TOS 如果仓库过大可能会引起GitHub的审查 严重遭到删号导致数据丢失