次の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