データベースの内部を知っている人にとって、これは簡単な質問かもしれませんが、データベースに大きなBLOB(たとえば、400 MBの映画)を格納するとパフォーマンスが低下することになっている理由を明確に説明できますか?これはインターネット全体でよく見られる申し立てですが、実際に説明されたことはありません。
具体的には、SharePoint / MSSQLのパフォーマンス、つまりファイルアップロードのパフォーマンス、サイトの閲覧、リストの表示、ドキュメントのオープンなどについて言及しています。データベースが大きくなりすぎると、動作が遅くなると言われています。ファイルシステムへのBlobの外部化(SharePointではリモートBlobストレージと呼ばれ、データベースからファイルを移動し、参照のみを残します)はこれをある程度解決するはずですが、正確には-最下位レベルで-違いは何ですか?データベースに巨大なファイルが保存されている場合、バックアップに時間がかかることは明らかです...しかし、どの操作が正確に影響を受け、その基本的なメカニズムは何ですか(つまり、データベースの外部のファイルシステムに保存されているファイルは、どのようにアクセスまたは保存されますか?)
列を含む単純なテーブルをID(guid, PK), FileName(string), Data(varbinary(max))
考えてみてください-大きなData
列は、Webサイトにファイルのリストを表示する(内部的には実行することを意味しますSELECT FileName FROM table
)、または新しい行を挿入するなどの操作を本当に遅くしますか?実際のバイナリコンテンツの列にインデックスが付けられるのとは異なります。
このような質問が既に出されていることは知っていますが、十分な説明が見つかりません。