私はSQLiteについて長い間知っていて、非常に高速であることを知っていますが、実稼働サーバーで試したことはありません。失敗するまでに処理できるトラフィックの量について、確実な見積もりを見つけることはできませんでした。
誰かがこれについて何か番号や記事を持っていますか?
私はSQLiteについて長い間知っていて、非常に高速であることを知っていますが、実稼働サーバーで試したことはありません。失敗するまでに処理できるトラフィックの量について、確実な見積もりを見つけることはできませんでした。
誰かがこれについて何か番号や記事を持っていますか?
回答:
残念ながら、ロード機能に関する数値はわかりませんが、パフォーマンスを制限する要素のいくつかについてコメントします。
SQLiteの速度は、ディスクの速度と、挿入/更新が大量に行われているかどうか(書き込みアクセスなど)に影響されます。書き込みロックはディスクの回転速度によって制限されます
トランザクションはデフォルトで開始されますが、トランザクションを開始してコミットすると、パフォーマンスが向上します。プログラムでトランザクションを処理するときに、非常に高速な大量挿入を行った
通常、データを読み取るだけの場合、私の経験では優れたパフォーマンスが得られます。したがって、SQLiteは、データベースサーバーの読み取り、特にリモートの読み取りや複雑なクエリを格納するためのキャッシュシステムとして使用できます。
データベースサーバーよりも使用するリソースが少ないため、Webサーバーとアプリケーションコード用により多くのリソースを解放するため、サイトのパフォーマンスに影響を与える可能性があります。
複数の同時書き込みを可能にする必要がある場合は、データベースサーバー(MySQL、Postgresなど)が適切に機能する可能性があります。
以下のようDevrimは述べ、100Kのユーザー/日の周りにSQLiteのサイトの状態は問題ないはずです。Tracシステムは書き込みを必要とするため、その場合はおそらくパフォーマンスが低下します。
これらの良い答えに追加するいくつかのポイントがあります。
SQLiteの現在のバージョンにはWAL(Write-Ahead Logging)があり、読み取りと書き込みを同時に行うことができます。したがって、以前の回答で述べた従来の単一のライターの制限はなくなりました。WALはまだ実稼働環境で見たことがないので、WALがどれほど拡張性があるかはコメントできません。
WALを使用するかどうかにかかわらず、SQLiteデータベースが読み取り専用(またはバッチ更新)であり、RAMに収まる場合(OSがバッファーに保持するのに十分な予備のRAMをOSに備えている場合)、本番環境のWebアプリケーションで非常に適切にスケーリングできます。個人的には、そのパフォーマンス、スケーラビリティ、堅牢性について非常に懐疑的でしたが、今では9か月の運用でシステムの最も複雑な部分でも非常にうまく動作することが証明されています。
Sqliteはアプリケーションに埋め込むのに最適であり、それがそのために設計されたものですが、確かに「非常に高速」ではありません。私は自分のいくつかのアプリケーションにそれを使用していますが、完全に機能するアプリケーションを提供するために別のマシンにコピーできるファイルが2つしかないという便宜のためだけです。同じ構造、インデックスなどを使用したMySQLに対するテストでは、小規模なデータベースの場合でも、Sqliteがかなり遅くなることが示されています。100 MB未満のデータベースでしか使用していないため、データベースのサイズが大きくなるにつれてパフォーマンスの差が大きくなることを期待します。
Sqliteは、従来のクライアント/サーバーDBアプリケーションではありません。それは本質的に、別のアプリケーション内に埋め込まれたライブラリです。シングルユーザーデスクトップアプリケーション向けに設計されています。DB全体が書き込み時にロックされているため、マルチユーザー環境で何らかのスタンドアロンMySQL / PostgreSQL / MS-SQLの代替として使用することは絶対に望まないでしょう。パフォーマンスを破壊する軽負荷でも競合の問題に対処します。