Django を使用して、1 日平均 40 ~ 50 ヒットの PHP+MySQL サイトを書き直しています。
SQLite はここで使用するのに適したデータベースですか? それらの間に利点/欠点はありますか?
ブログとそれを編集できるユーザーを保存するためにデータベースを使用しているだけです。ブログ検索に全文検索を使用していますが、複雑な結合はどこにもありません。
1 日あたり 40 ~ 50 件のヒットは非常に少なく、SQLLite は問題なく使用できます。
MySql は、複数の接続をより適切に処理するため、より多くのヒットが得られるようになると、より優れたものになる可能性があります (ロックは MySql と SqlLite とは異なります)。
sqlite の主な問題は同時実行性です。1 日に 40 ~ 50 回のヒットが予想される場合は、おそらく問題ありません。ただし、その負荷が増加した場合は、MySQL などのデータベース デーモンに移行する準備ができている必要があります。データベース固有のコードを抽象化して、そのような切り替えをできるだけ簡単にします。
SQLite wikiのパフォーマンス セクションが役に立つかもしれません。
すでに適切なデータベースを使用しているので、小さいデータベースに移行する理由がわかりません。
sqliteも完全に適切かもしれませんが、より機能性の高いプラットフォームからより機能性の低いプラットフォームに変更することは、最良の選択ではないようです:)
SQLite は問題なく動作します。データベースを主に読み取り専用として使用しているように聞こえます (コンテンツを更新するために時々書き込みます)。SQLite は、この種のアクセス パターンに優れています。SQLite がチョークする唯一の場所は、データベースへの大量の書き込みがある場合です。これは、プロセスが書き込みを試みると、書き込みが完了するまでファイルがロックされるためです。また、大量の書き込み (ループ内の行の更新など) を行う場合は、それらすべての書き込みをトランザクションに入れることを検討する必要があります。トランザクションが書き込みクエリにヒットすると、ファイルはロックされますが、更新自体にかかる時間は大幅に短縮されます。個別にではなく、一度にファイルに書き込まれます。
このレベルのトラフィックには、SQLite で問題ありません。実際には非常にうまく機能しますが、ページにアクセスするたびにスピンアップする必要があるため、欠けているのはデータとクエリのキャッシュだけです. とはいえ、それでも非常に迅速であり、後で必要に応じて MySQL に移行するのはそれほど難しくありません。