ピクチャ/イメージをファイル システムからストリーミングするのと、BLOB や MySQL データベースからストリーミングするのとでは、どちらが高速ですか?
私が実際に求めていること:
PHP がテーブルから画像を読み取ってブラウザに出力したり、ファイル システムから直接ストリーミングしたりする方が高速ですか?
まず第一に、ほとんどの場合、ファイル システムから読み取る方が高速です。
「まず第一に」で始まるものはすべて、「しかし」または「追加で」のいずれかが必要です - 私は両方を提供しようとします:
さらに、データやインデックスに使用できる BLOB データのバッファ ページを使用することで、他のクエリを遅くすることができます。
しかし、複数のサーバー アーキテクチャにスケールアップする場合は、それ自体が地雷原である共有ファイル システムが必要になります。これは、ときどき (日常的ではなく、特別な使用例で)、審査員を BLOB の保存に向かわせる議論です。
調査がなければ、有効な声明を出すことは IMO 不可能です。この論文は、たとえば次のような結論に達しています。
256K より小さいオブジェクトはデータベースに格納するのが最適であり、1M を超えるオブジェクトはファイルシステムに格納するのが最適です。256K から 1M の間では、読み取りと書き込みの比率と、オブジェクトの上書きまたは置換の速度が重要な要素になります。
そして、これは彼らの環境 (SQL Server 2005) にのみ当てはまります。とにかく、DBS (ACID など) にリソースを配置することの利点は、ほぼ 10 年間 (マニュアルに記載されていることとは反対に) BLOB のストリーミングをサポートしていないPHP がなければ優位に立つと思います。