質問

適切な使用の1つは、 sqlite3 は「インメモリデータベース」です。これは、私のC ++アプリケーションにとって本当に便利なツールのように思えます。これがCまたはC ++でどのように行われるかの例はありますか?具体的には、いくつかのフラットファイルをインメモリデータベースに丸みしてから結合を行う標準的な方法を探しています。

役に立ちましたか?

解決

実際には非常に簡単です。 C / C ++ APIを使用してデータベースを開くときに、データベースファイル名として「:memory:」を指定するだけです。これは、エンジンが認識する特別な定数です。 PythonやRubyなどの他の言語でも同じことが実際に機能します。これは通常、C / C ++ APIをラップするだけだからです。詳細については、 http://sqlite.org/c3ref/open.html をご覧ください。

>

他のヒント

ファイル:memory:を開くだけで実行できます(少なくともPHPでは実行されます)。

複数のフラットファイルを読み込み、それらを結合したいと述べています。フラットファイルをSQLiteデータベースとして保存できる場合は、一方をもう一方に接続することで両方を直接操作できます。

ATTACH foo.db AS foo

次に、fooのテーブルを次のように参照します。

SELECT * FROM foo.users

この方法では、インメモリデータベースを作成する必要なく結合を実行できます。

SQLiteが一時ファイルをジャーナルとして使用しないようにする場合、たとえば、手動で接続、切断、アタッチ、またはデタッチを要求するとき以外のファイルアクティビティは必要ありません。次に、":memory:"に接続した後、実行時に次の2つのプラグマを使用します。データベース。

PRAGMA temp_store=MEMORY;
PRAGMA journal_mode=MEMORY;

ドキュメントから

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top