Asayomu Tech
注目★★★★★Hacker News

Django サイトで SQLite を本番運用、学んだ 4 つの落とし穴

30秒で把握

  • 1Django/SQLite 本番サイトで ANALYZE 未実行により FTS5 クエリが 100 倍遅延、実行後に即座に高速化
  • 2DELETE 操作の 5 秒超過でワーカータイムアウト多発、バッチ化・スケジュール保守で対応
  • 3VACUUM INTO+restic/Litestream でバックアップ体制構築、複数 DB ファイル分割活用も有効

要約

Julia Evans は Django サイトの本番環境で SQLite を採用し、実運用で気づいた課題をまとめた。ANALYZE コマンドを実行すると FTS5 クエリが 5 秒から 0.05 秒に短縮されたほか、DELETE 操作が 5 秒を超えると他のワーカーがタイムアウトして落ちる問題に直面した。小規模サイトでも VACUUM INTO での定期バックアップ、複数の独立したデータベースファイル分割、ORM クエリの監視が必要と指摘している。

あなたへの影響

小~中規模の Django サイトを SQLite で運用するなら、ANALYZE の定期実行、DELETE 操作のバッチ化、バックアップ戦略 (restic または Litestream) を早期に導入すべき。

推奨:単一ライターの制限から逃げ場がないため、将来スケール時の移行計画も視野に入れる価値がある。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。