Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der wichtigsten Punkte zur Verbesserung der Effizienz beim Speichern großer Mengen kleiner Dateien

Detaillierte Erläuterung der wichtigsten Punkte zur Verbesserung der Effizienz beim Speichern großer Mengen kleiner Dateien

高洛峰
高洛峰Original
2016-10-18 14:37:031423Durchsuche

Bei der WEB-Entwicklung stoßen wir häufig auf die Situation, Dateien zu schreiben, und die häufigste ist das Speichern von Bilddateien. Wenn die Anzahl der Dateien nicht groß ist, besteht kein Grund zur Sorge um die Effizienz. Wenn Sie jedoch eine große Anzahl von Benutzern und eine große Anzahl von Bildern haben, wirkt sich die Art und Weise, wie wir Bilddateien speichern, direkt auf die Effizienz des gesamten Bildspeichersystems aus.

Normalerweise gibt es ein Sprichwort, dass die Lesegeschwindigkeit einer bestimmten Datei erheblich abnimmt, wenn sich in einem Verzeichnis 10.000 Unterdateien befinden. Ist diese Aussage also richtig oder nicht? Werfen wir einen Blick auf Folgendes:

F: Warum beeinträchtigen zu viele Unterdateien in einem einzelnen Verzeichnis die Leistung? Wenn sich beispielsweise 10.000 Unterdateien in einem Verzeichnis befinden, verringert sich die Lesegeschwindigkeit einer bestimmten Datei deutlich langsamer sein? Hängt es mit dem Dateiindex zusammen?

Antwort: Ja, es hängt mit dem Index zusammen. 10.000 sind nicht zu viel. Das merkt man an Millionen davon. Es wird jedoch empfohlen, 10.000 nicht zu überschreiten.

Frage: Millionen langsamer Dateien hängen mit dem Dateisystem als Ganzes zusammen. Wie verhält es sich also mit dem aktuellen Verzeichnis? Ein ähnliches Dateisystem, das Millionen von Dateien unterstützt, ist nichts

Antwort: Ich meine, dass Hunderttausende oder Millionen von Dateien direkt in einem Verzeichnis ohne Unterverzeichnisse abgelegt werden können. Derzeit ist das Abrufen des Verzeichnisindexes sehr ressourcenintensiv.

Die begrenzte Anzahl der Unterstützungen liegt daran, dass die Größe des Verzeichnisobjekts selbst begrenzt ist. Das Verzeichnis ist ein Container, der den Dateinamen und die der Datei entsprechende Inode-Nummer enthält Es bietet auch nur begrenzt Platz.

Die Geschwindigkeit beim Lesen einer bestimmten Datei hat keinen Einfluss. Aber es ist schwer zu finden. Der Indexierungsmechanismus einiger Dateisysteme ist unvollständig und verfügt nicht einmal über Optimierungsalgorithmen, wodurch jede Suche mehr Zeit in Anspruch nimmt.


Aus der obigen Frage und Antwort können wir erkennen, dass „Wenn sich 10.000 Unterdateien in einem Verzeichnis befinden, die Lesegeschwindigkeit einer bestimmten Datei erheblich abnimmt.“ Rechts. Wie teile ich Verzeichnisse auf?


Tatsächlich ist es relativ einfach, es nach Monat, Hash-Punkt oder Zeit plus Hash-Kombination zu unterteilen Projektanforderungen. . .


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn