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