Ich weiß und verstehe, dass es Leistungseinbußen beim Speichern von Blob-Daten in der Datenbank gibt, aber der Blob-Teil der Daten wird selten abgerufen / angezeigt, sondern für kleinere Daten (die überwiegende Mehrheit unter 256 KB mit maximal 10 MB). wird es von den meisten Kunden nicht verwendet, und die Gesamtzahl der Zeilen wird voraussichtlich relativ niedrig sein, sehr wahrscheinlich unter einer halben Million, wenn nicht weniger. Außerdem sind einige Daten dynamisch und können sich für einige Benutzer ändern, da es sich nicht um statische Bilder handelt. Mit anderen Worten, wir sind am Rande der Frage, ob es sich lohnt oder nicht.
Ich lese immer wieder, dass es besser ist, im Dateisystem zu speichern, aber ich kann keine tatsächlichen Metriken finden, die den Leistungsunterschied anzeigen, sondern nur Leute, die sich ohne konkrete Beweise oder Metriken wiederholen. Für uns ist es möglicherweise die Leistungskosten wert, wenn Sie vollständig ACID sind und sicherstellen, dass alle unsere Backups vollständig synchronisiert sind.
Davon abgesehen kennt oder hat jemand Metriken aus der realen Welt, um den Leistungsunterschied zwischen dem Speichern von Elementen als Blobs und im Dateisystem anzuzeigen. Ich versuche zu verstehen, ob sich die Leistungsstrafe lohnt oder nicht, anstatt blind der allgemeinen Faustregel zu folgen und nachdem ich mindestens 2-3 Stunden verbracht habe und ich noch nicht in der Lage bin, jemanden zu sehen, der tatsächliche Zahlen zeigt. Es sind alles nur Worte mit nichts Konkretem.
Dies ist übrigens eine MySQL InnoDB-Tabelle. Die eigentliche Datentabelle verfügt über einen Link zur Blob-Datentabelle, sodass der Blob nicht in der Hauptdatei enthalten ist und nur bei Bedarf abgerufen wird, um E / A-Probleme zu vermeiden. Mit anderen Worten, anstelle des Pfads zu den Daten im Dateisystem handelt es sich um eine ID für eine andere Tabelle mit nur Blobs. Wie ist das in Bezug auf die Leistung zu vergleichen? Ist es 25% schlimmer? Ist es 100%? Ist es 200-500%? Ist es 1000%?
Wenn die Kosten nur 100% -200% betragen, lohnt es sich wahrscheinlich für uns, da die Daten wiederum selten abgerufen werden. Selbst wenn wir 10.000 gleichzeitige Benutzer sagen würden, würden vielleicht nur 50 Benutzer ihre Blob-Daten bestenfalls gleichzeitig abrufen. Ja, die Daten sind für jeden Benutzer spezifisch, es sind keine Bilder.