私がする必要があるのは、sqlite3データベースをディスクからメモリにロードし、そのディスクを使って作業し、スクリプト終了時にインメモリデータベースをディスクに保存することです。これをどうやってやりますか?ありがとう!ディスクからsqlite3データベースを取得し、メモリにロードしてディスクに保存しますか?
答えて
あなたがする必要があるのは、データベースにconnect
です。これで、あなたは何でもしたいことができます。
from sqlite3 import connect
conn = connect("/path/to/your/sqlite.db")
# Do what you need to with the database here
# Changes (inserts, updates, etc) will be persisted
# to disk whenever you commit a transaction.
あなたが一連のコマンドを実行し、もう1つはあなたがtransactionを使用する必要があります成功しない場合、それらすべてをロールバックできるようにする必要がある場合。
あなたは、既存のデータベースのコピーを作成し、それに変更を加えると、その後別の場所に保存する必要がある場合は変更は、あなたは、次のいずれかを実行することができますを成功した場合にのみ:
- を作成します。インメモリデータベースを作成し、SQLiteの
ATTATCH DATABASE
コマンドを使用して、既存のデータベースを新しいインメモリデータベースにアタッチします。すべてのデータを既存のデータベースからメモリ内のデータベースにコピーして変換したら、新しいデータベースを追加してすべてをコピーすることができます。 - 既存のデータベースファイルをコピーし、変更を試みて、操作が成功しなかった場合は新しいファイルを削除してください。
- 使用
sqlite3
のConnection.iterdump
は、あなたがして(インメモリまたはあなたの新しいデータベースのディスク上の接続文字列のいずれかを使用して)this answer suggestsとしてsqlite3.Cursor.executescript
に渡すことができるSQLスクリプトとしてテーブルの内容を取得します。メモリへ
しかし、私はそれを照会するたびに、それディスク上のファイルを照会します。私はこれが記憶に(私はそれが速いと聞いた)実行したい。 –
@Fike - ディスクIOがあなたのボトルネックであることを知っていない限り、おそらくこの最適化を行う必要はありませんが、私はあなたにいくつかの提案を与えました:-) –
@Sean Vieira感情、あなたは技術的に彼の質問に答えなかった。本当の答えを探している人のために、私はまだそれをテストしていませんが、これはそれを行うための一つの方法です:http://stackoverflow.com/a/10856450/353094 – leetNightshade
- 1. ディスクへのメモリ内H2データベースの保存
- 2. Androidパーセル、メモリまたはディスクに保存されていますか?ディスクに保存する方法
- 3. NSPersistentContainer viewContextを使用してディスクに保存しますか?
- 4. ディスクにメモリ内のデータベースを保存する
- 5. blobをディスクにディスクに保存
- 6. C#で巨大ブール配列をディスクに保存/ロードしていますか?
- 7. 一時ディスクにコミットログを保存していますか?
- 8. Mongoengine FileFieldをディスクに保存していますか?
- 9. Javaのディスクからメモリにsqliteをバックアップして復元する
- 10. シェルのファイルをディスクへのリンクから保存します
- 11. ggplot2オブジェクトをggplotlyとして保存し、Linuxのディスクに保存します
- 12. オブジェクトのNSMutableArrayをディスクに保存/書き込みしますか?
- 13. リピータからバインドした後、excelファイルをディスクに保存します
- 14. SharePointからバイナリとしてファイルをダウンロードし、ActiveXでディスクに保存
- 15. ディスクに保存せずにファイルのmd5を取得する
- 16. SQLite3ディスクIOエラー
- 17. UWPディスクにzipファイルを保存しています
- 18. Android - ファイルをダウンロードしてからディスクに保存せずに開く方法
- 19. ディスク上の.csクラスファイルからプロパティを取得します。
- 20. ディスクからのプログラムのロード
- 21. RxJavaでネットワークにロードし、UIに表示し、RxJavaでディスクに保存
- 22. IDropTarget.Dropメソッドで取得したIDataObjectをOutlookのメッセージに変換してディスクに保存します。
- 23. データベースのブロブとディスクの保存ファイル
- 24. XLSMファイルをデータベース列に保存して取得しますか?
- 25. sparkのpersist()は、デフォルトでメモリまたはディスクに保存されますか?
- 26. Django、ディスクに保存時にエラーが発生しました。なぜですか?
- 27. ディスクからデータベースpostgresqlバックアップを取得する
- 28. セッションから値を取得してデータベースに保存するASP.NET
- 29. クッキーから値を取得してデータベースに保存する
- 30. QtWebEngineを使用してディスクに画像を保存する
ディスク:http://stackoverflow.com/questions/3850022/how-to-load-existing-db-file-to-memory-in-python-sqlite3 –