我创建一个像这样的 SQLite 文件:
sqlite3 output.db < myinserts.sql
不幸的是,这需要几个小时,所以我想通过使用以下 PRAGMA 来加快速度:
PRAGMA synchronous=OFF
PRAGMA count_changes=OFF
PRAGMA journal_mode=MEMORY
PRAGMA temp_store=MEMORY
问题: 如何在命令行中设置它们?
它用于脚本,所以我不需要交互模式,我想在单个命令行中完成所有操作。
答案1
您可以回显您的 PRAGMA,然后使用 cat 将它们添加到您的 sql 中
echo "PRAGMA synchronous=OFF;PRAGMA journal_mode=OFF;PRAGMA temp_store=MEMORY;" | cat - myinserts.sql | sqlite3 output.db
有关在内存中添加文件的其他方法,请参阅https://www.cyberciti.biz/faq/bash-prepend-text-lines-to-file/
答案2
我还没有找到在命令行上指定这些的简单方法,但解决方法可以是将这些行放在 SQL 输入的开头:
echo "PRAGMA synchronous=OFF;PRAGMA count_changes=OFF;PRAGMA journal_mode=MEMORY;PRAGMA temp_store=MEMORY" \
> tmp.sql
cat myinserts.sql >> tmp.sql
sqlite3 output.db < tmp.sql
rm tmp.sql