SQLiteインメモリデータベース学習マニュアル
I. インメモリデータベース
SQLiteでは、データベースは通常ディスクファイルに保存されます。しかし、場合によっては、データベースを常にメモリ上に存在させることができます。これを行う最も一般的な方法の一つは、sqlite3_open()を呼び出す際に、データベースのファイル名パラメータに ":memory:"を渡すことです。
rc = sqlite3_open(":memory:", &db);
上記の関数が呼ばれた後、ディスクファイルは生成されず、代わりに純粋なメモリ内に新しいデータベースが正常に作成されます。永続性はないので、このデータベースは、現在のデータベース接続が閉じられると同時に消滅します。上記の方法で複数のデータベース接続をインメモリに作成することができますが、それらは異なるデータベースであり、お互いに何の関係もないことに注意が必要です。実は、インメモリデータベースを、他の通常のデータベースと同様に、Attachコマンドで現在の接続にアタッチすることもできます、例えば
ATTACH DATABASE ':memory:' AS aux1;
II. 一時的なデータベース
sqlite3_open()関数を呼び出すか、ATTACHコマンドを実行するとき、データベース・ファイル・パラメータに空文字列を渡すと、新しい一時ファイルが一時データベースの基礎ファイルとして作成されます、例.
rc = sqlite3_open("", &db);
または
ATTACH DATABASE '' AS aux2;
インメモリデータベースと同様に、2つのデータベース接続によって作成される一時データベースは、互いに独立しています。接続が閉じられると、一時データベースは自動的に消え、その基礎となるファイルも自動的に削除されます。
ディスクファイルは一時データベースのデータ情報を保存するために作成されますが、一時データベースは実際には通常インメモリデータベースと同じようにメモリ上に存在します。唯一の違いは、一時データベースが大きすぎる場合、SQLiteは他の操作に使用できるメモリを増やすために一時データベースからデータの一部をディスクファイルに書き込みますが、インメモリデータベースは常にデータをメモリ上に保存します。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン