SQLiteと他のデータベースの違いを紹介します。SQLiteと他のデータベースの違いを紹介します。「SQLiteの特徴を教えてください」2020-02-27SQLiteと他のデータベースの違いを紹介します。Pythonお悩み解決-データベース質問SQLite(エスキューライト)は、ファイルベースのデータベースエンジンです。SQLiteは、サブクエリーを含むほとんどのSQL構文の実行ができます。SQLiteは構文が充実していますが、同時接続を並列に処理する機構が比較的弱いという短所があります。いう説明がPyQのクエストに書いてありましたが、データベースが「同時接続を並列に処理する」とは何か、比較的弱いとは何かを教えてください。回答PyQの学習コンテンツ内では簡単にしか説明できていなかった点ですね。掘り下げて説明します。データベースの特徴SQLite、MySQL、PostgreSQLのようなデータベースは、複数のクライントから同時に接続されることを考慮して作られています(同時実行制御)。その際に、データの読み込みと書き込みをロックという仕組みで制御することにより、データの整合性を保ちつつ同時接続ができるよう作られています。同時実行で起こる問題は例えば「あるクライアントが行数をカウントしているときに、他のクライアントが1行別のデータを挿入すると、実行しはじめたときより行数が増えてしまう問題」などがあります。データベースのロックは他のクライアントができる操作やデータの範囲を制限することで、整合性を保つ仕組みです。SQLiteの特徴ですが、SQLiteができるロックはそれほど柔軟でないのが特徴です。ロックする範囲をデータベース全体でしか制御できない(テーブル単位、行単位でのロックができない)特徴を持っています。SQLiteはローカルのファイルを直接データベースとして扱うので、複数のサーバーとネットワークごしに接続するのには不向きです。Webサーバーを複数台起動する場合などはMySQLやPostgreSQLなどを使うほうが良いでしょう。DjangoでのWebアプリケーション開発を考えると、SQLiteは基本的には開発時に使うことが多いでしょう。多くの人に使ってもらう本番環境や、複数台のWebサーバーを起動する場合はMySQLやPostgreSQLを使いましょう。SQLiteも決して悪いものではなく、インストール型のアプリケーションやローカルのテスト用に使えます。Webアプリケーションとしても、単一インスタンスでアクセスが少なく、可用性も低くてよいWebアプリケーションでは十分に使えます。趣味で作った小さなWebアプリケーションや社内用の重要でないサーバーであればSQLiteでも悪くはありません(RDBMSサーバーを使うほうが無難ではあります)。複数プロセスが同時にアクセスする場合も、それほど頻度が多くないのであれば十二分にSQLiteはうまく制御してくれます。SQLiteの使用法について詳しく知りたい場合は以下のドキュメントを参考にしてください。www.sqlite.orgもしトランザクションや同時実行制御について詳しく知りたい場合は、ぜひGoogleなどで検索したり、書籍を読んでみてください。12:02このブログはPyQ開発スタッフが運営しています。技術書1冊分の価格ではじめるPython独学プラットフォームです。Pythonの基本から機械学習・データ分析まで、実際にコードを書きつつブラウザだけで学べます。Pythonお悩み解決で紹介しているような疑問が解決できるプラン(スタンダードプラン)もあるので、プログラミング学習をサポートする先輩プログラマーのような存在が必要になったときには、是非検討してみてくださいね。»Python学習チャンネルPython独学プラットフォームPyQ(パイキュー)の公式ブログです。PyQのリリース情報やカリキュラム紹介だけでなく、プログラミング学習者向けにPythonのQ&A、プログラミング学習tipsなどを配信しています。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。