web-dev-qa-db-ja.com

SqliteまたはMySql?決定方法

2つのうちどちらを使用するかを決定する方法に関する良い経験則はありますか?

そして、もしあなたがSqliteデータベースを引き継いで、システムが「もっと大きくなる」と予想されるなら、それを固執するのか、それともMySqlに移動するのかをどうやって決めるのでしょうか?

82
Mawg

それらの機能セットはまったく同じではありません。 Sqliteは、ネットワーク機能を持たない組み込みデータベースです(追加しない限り)。そのため、ネットワーク上では使用できません。

必要なら

  • ネットワークアクセス-別のマシンからのアクセスなど。
  • 実際の同時実行性-たとえば、一度に複数のクエリを実行したい場合や、多数の選択といくつかの更新があるワークロードを実行し、スムーズに実行したい場合など.
  • たとえば、1Tbデータベースの一部を32Gのメモリにバッファリングするなど、大量のメモリ使用量。

Mysqlまたは他のサーバーベースのRDBMSを使用する必要があります。

MySQLが唯一の選択肢ではなく、新しいアプリケーション(pgSQLなど)に適したものが他にもたくさんあることに注意してください。

Sqliteは非常に素晴らしいソフトウェアですが、RDBMSサーバーが行うこれらのことを行うことを主張したことはありません。ローカルファイルでSQLを実行する小さなライブラリです(ロックを使用して、複数のプロセスがファイルを破壊しないようにします)。非常によくテストされており、とても気に入っています。

また、自分でこれを正しく選択できない場合は、おそらくチーム内でできる人を雇う必要があります。

93
MarkR

Sqliteチームは sqliteをいつ使用するか を説明した記事を公開しました。基本的に、多くの書き込み同時実行性がある場合、またはテラバイトのデータに拡張する必要がある場合は、sqliteの使用を避けます。他の多くの場合、sqliteは、MySQLなどの「従来の」データベースの驚くほど優れた代替手段です。

52
Josue

すぐに使用できるSQLiteは、同時実行性に関して完全に機能豊富ではありません。何百ものWebリクエストが同じSQLiteデータベースにアクセスすると、問題が発生します。

必ずMySQLまたはPostgreSQLを使用してください。

一人用のプロジェクトの場合は、SQLiteのセットアップが簡単になります。

11
Jerome WAGNER

以前の素晴らしい返信に対する私の数セント。サイトwww.sqlite.orgはsqliteデータベースで動作します。作成者(リチャードヒップ)が同様の質問に答える場合、 リンク があります。

10
Maksee