質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

1578閲覧

sqlite のメモリ展開はどんな時に使いますか?

退会済みユーザー

退会済みユーザー

総合スコア0

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/04/13 09:46

編集2018/04/13 09:46

sqliteの機能で、データベースをメモリ上に展開するというものがあると思います。
なんとなく興味を惹かれつつも、用途が今ひとつ分かりません。
セオリーや活用場面などあれば、是非教えていただければと思っています。
sqliteをより深く理解し、使いこなしたいという気持ちからの質問です。

自分で勝手に考えたところでは、データベース形式ではないなんらかのデータの処理をする際に、集合的な処理が必要だとかで、sql文を使いたい、というようなものがあるのかもしれないと思いました。
ただパフォーマンス的にどうなのかなど、色々疑問があり、よくわかりません。

教えていただければ幸いです。

ちなみに言語はpythonとセットで使っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ユニットテストの時に使います。短期的な速さを求めるならSQLにデータを格納するよりも生で処理した方が速いですし、長期的な揮発性データ領域だとインメモリのKVSとか他の選択肢がありそうですし。

投稿2018/04/13 13:10

YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:48

ありがとうございます!
guest

0

はじめまして

セオリーや活用場面などあれば、是非教えていただければと思っています。
sqliteをより深く理解し、使いこなしたいという気持ちからの質問

すごい思いですね!
確かにほかのデータベースとは少し違った変わったDBだと思います。

以下、回答になります。

セオリー(というか、注意点)

メモリは揮発性なので、Pythonの処理がEXITすると同時に失われる

  • 一時的なデータの格納、更新に用いる
  • スケーラブルにデータの処理を実現するため、端末のスペックが必要

活用場面

  • 高速で大量のデータを処理する必要がある場合 例 トランザクション処理
  • 同時接続数が急激に増える場面 例 ログイン処置でのユーザー認証あたりが思い浮かびます

投稿2018/04/13 10:16

kawakawa2018

総合スコア1195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:48

ありがとうございます! なんだか不思議な機能なので何かに使ってみたいなと。さらに研究してみたいと思います。
guest

0

ベストアンサー

セオリー

データベース接続が閉じられるとすぐにデータベースは存在しなくなります。
つまりデータベースは現在の接続に対してのみ存在します。
加えて、メモリなのでディスクアクセスに比べて高速です。
データが消えても問題ない場面で使用します。逆にデータが消えて困る場合は使用しないでください。

活用場面

上記の通り、データを永続的に保持するのではなく、データを高速に一時的に保持するケースに最適です。

  • ユニットテスト

RDBMSを使用するアプリケーションの場合は、一番良く使うケースかと思います。
使用するテストデータは消えても良い、テストに時間をかけたくない、既存(開発用)データを汚さず、毎回そのテストだけに必要な(新鮮な)データをロードしたいという思いにベストマッチします。

  • 大量データの一時的処理

大量データをフィルタしたりソートしたり、色んな切り口で処理する場合、手動でコーディングするよりもSQLの機能(JOINやOrderBy等)を使った方が、プログラムの柔軟性が向上する場面があります。

投稿2018/04/13 22:07

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:49

ありがとうございます! 使用イメージがわきました。試してみたいと思います。
guest

0

ディスクは遅いですから、高速なインメモリデータベースとして使いたいとき手っ取り早く用を済ませるための機能なのでは。

投稿2018/04/13 11:32

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/16 22:48

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問