8 ポイント 投稿者 xguru 2022-05-20 | まだコメントはありません。 | WhatsAppで共有

複数のテーブルを1つにまとめてクエリする際に選べる選択肢は3つ: CTE、View、一時テーブル

  • CTE : サブクエリをまとめてリアルタイムに継続して計算されるため、サブクエリが遅いと一緒に遅くなる
  • View : CTEのように動作するが参照可能で、サブクエリをずっと繰り返すわけではない。ただし、やはり継続してリアルタイム計算される。PostgreSQLのようにディスクに保存する Materialized View はあるが、SQLiteにはない
  • Temporary Table : 実際のテーブルのようにディスクにデータを保存し、インデックスの作成も可能。ただし、DBコネクションが生きている間だけ存在する。
    • SQLiteは一時テーブルを別個の temp データベースに保存する
    • temp db はディスク上で別ファイルとして管理され、現在のDBコネクションからのみ見える
    • コネクションが終了すると自動的に削除される
  • 一時テーブルはデータについて調べたり試したりするのに適しており、気軽に活用できる

まだコメントはありません。

まだコメントはありません。