Stockage de millions de systèmes de fichiers image

J'ai un projet qui générera un grand nombre d'images. Près 1000000 commencer. Ce sont de petites images, donc je les stockerai tout sur une seule machine au démarrage.

Comment recommandez-vous de stocker efficacement ces images? (Système de fichiers NTFS actuellement)

Je considère le schéma de dénomination ... Pour commencer, toutes les images auront un nom incrémentiel de 1 Avant d'espérer que cela m'aidera plus tard les trier si vous avez besoin et les jeter dans différents dossiers.

Quel schéma de dénomination sera meilleur:

a/b/c/0 ... z/z/z/999
ou

a/b/c/000 ... z/z/z/999
Avoir des idées à ce sujet?
Invité:

Catherine

Confirmation de:

Je recommanderais d'utiliser le système de fichiers habituel au lieu de bases de données. Utilisez le système de fichiers est plus facile que la base de données, vous pouvez utiliser des outils conventionnels pour accéder aux fichiers, les systèmes de fichiers sont conçus pour une telle utilisation, etc. NTFS Doit fonctionner parfaitement comme système de stockage.

Ne sauvegardez pas le chemin effectif à la base de données. Il est préférable de sauvegarder le numéro de séquence de l'image dans la base de données et d'avoir une fonction pouvant générer un chemin à partir du numéro de séquence. par exemple:

 File path = generatePathFromSequenceNumber(sequenceNumber);

Il est plus facile de faire face à cela si vous avez besoin de changer de structure de répertoire. Vous devrez peut-être déplacer des images vers un autre endroit, vous avez peut-être été terminée et vous commencez à stocker des images sur le disque. A, et certaines - Sur disque B etc. D. Plus facile à changer une fonction que de modifier les chemins de la base de données .

J'utiliserais un tel algorithme pour créer des répertoires:

Entrez d'abord le numéro de séquence avec les zéros de premier plan jusqu'à ce que vous receviez au moins une chaîne à 12 chiffres. Ceci est le nom de votre fichier. Vous pouvez ajouter suffixe:


12345

->

000000012345.jpg


Puis divisez la chaîne en blocs de 2 ou 3 Symboles, où chaque bloc indique le niveau du répertoire. Avoir un nombre fixe de niveaux de répertoire (par exemple, 3):


000000012345

->

000/000/012


Enregistrez le fichier dans le répertoire généré:

Ainsi, le chemin complet et le nom de fichier pour le fichier avec l'identifiant de séquence

123

est un

000/000/012/00000000012345.jpg

Pour un fichier avec un identifiant de séquence

12345678901234

Chemin sera

123/456/789/12345678901234.jpg


Certaines choses à prendre en compte par rapport aux structures de répertoires et au référentiel de fichiers:

L'algorithme susmentionné vous donne un système dans lequel chaque répertoire final a un maximum 1000 Des dossiers (Si vous avez moins 1000000000000 Des dossiers).

Il peut y avoir des restrictions sur le nombre de fichiers et de sous-répertoires que le répertoire peut contenir, par exemple
http://en.wikipedia.org/wiki/Ext3
a une limite de B. 31998 sous-répertoires sur un répertoire.

Outils ordinaires (WinZip, Windows Explorer, Ligne de commande, coquille bash etc.) Ne peut pas très bien fonctionner si vous avez un grand nombre de fichiers dans le catalogue (> 1000).

La structure de répertoire elle-même prendra une place sur le disque. Vous n'avez donc pas besoin de trop de répertoires.

Avec la structure ci-dessus, vous pouvez toujours trouver le bon chemin vers le fichier image, en regardant simplement le nom du fichier si vous avez accidentellement gâché la structure de répertoire.

Si vous devez accéder aux fichiers de plusieurs machines, envisagez de partager des fichiers via un système de fichiers réseau.

L'état des répertoires ci-dessus ne fonctionnera pas si vous supprimez de nombreux fichiers. Il laisse des "trous" dans la structure de répertoire. Mais puisque vous ne supprimez pas de fichiers, tout devrait être en ordre.

Dominique

Confirmation de:

Je vais mettre mon 2 Cent à la pointe négative: N'utilisez pas la base de données.

Je travaille avec des bases de données de stockage de données pendant de nombreuses années: grande (1 mégaoctet -> 1 Gigaoctet.) Fichiers, changeant fréquemment, plusieurs versions du fichier, l'accès auquel est souvent effectuée assez souvent. Des problèmes de base de données avec lesquels vous rencontrez lors de la conservation de fichiers volumineux sont extrêmement fastidieux, l'enregistrement et les problèmes de transaction sont déroutants et vous êtes rencontré avec des problèmes de blocage pouvant causer des accidents de train graves. J'ai plus de pratiques dans les scénarios d'écriture dbcc et restauration des tables des sauvegardes que de toute personne normale serait.

Déjà

ont.

La plupart des nouveaux systèmes avec lesquels j'ai travaillé, ont transféré le stockage de fichiers vers le système de fichiers et comptez sur des bases de données pour plus d'indexation. Les systèmes de fichiers sont conçus pour ce type d'abus, ils sont beaucoup plus faciles à développer et vous perdez rarement tout le système de fichiers si une entrée est endommagée.

Christine

Confirmation de:

Je pense que la plupart des sites qui doivent faire face à cela utilisent un hasch afin que les fichiers soient uniformément distribués par des dossiers.

Supposons que vous ayez un fichier hash qui ressemble à ceci

515d7eab9c29349e0cde90381ee8f810

Vous pouvez le stocker dans le lieu suivant et utiliser autant de niveaux que nécessaire pour que le nombre de fichiers dans chaque dossier soit faible.


\51\5d\7e\ab\9c\29\349e0cde90381ee8f810.jpg

J'ai vu cette approche a été appliquée plusieurs fois. Vous avez toujours besoin d'une base de données pour correspondre à ces fichiers de hachage avec un nom de personne claire et d'autres métadonnées dont vous avez besoin pour enregistrer. Mais cette approche est bien mise à l'échelle, comme vous pouvez commencer à distribuer l'espace d'adressage de hachage entre plusieurs ordinateurs et / ou des pools de stockage, etc.

Dominique

Confirmation de:

Idéalement, vous devez exécuter plusieurs tests pour un accès arbitraire pour différentes structures, car les paramètres de votre disque dur particulier, de la mise en cache, de la mémoire accessible, etc. peuvent modifier ces résultats.

En supposant que vous avez le contrôle des noms de fichiers, je les partageais au niveau 1000 secondes sur le catalogue. Plus vous ajoutez de niveaux de répertoire, plus inodes Vous écrivez, donc il y a push-pull.

Par exemple.,

/ racine / [0-99] / [0-99] / Nom de fichier

La note,
(WS.10).aspx[/url]
Il y a des informations de configuration plus détaillées. NTFS. En particulier, "si vous utilisez un grand nombre de fichiers dans le dossier NTFS (300 000 ou plus), Désactivez la génération de noms de fichiers courts pour améliorer les performances, en particulier si les six premiers caractères des noms de fichiers longs sont similaires. "

Vous devez également explorer la possibilité de désactiver les fonctions du système de fichiers dont vous n'avez pas besoin. (Par exemple, le dernier temps d'accès).
http://www.pctools.com/guides/registry/detail/50/

Babette

Confirmation de:

Quoi que vous fassiez, ne les gardez pas tous dans le même répertoire.

En fonction de la distribution des noms de ces images, vous pouvez créer une structure de répertoire dans laquelle vous aurez des dossiers de haut niveau avec une lettre, où vous aurez un autre ensemble de sous-dossiers pour la deuxième lettre d'images, etc.

Alors:

Dossier

img\a\b\c\d\e\f\g\

contiendra des images commençant par 'abcdefg' etc.

Vous pouvez entrer votre profondeur souhaitée.

La chose la plus remarquable dans cette décision est que la structure de répertoire agit efficacement comme une table de hachage / dictionnaire. Connaître le nom du fichier image, vous connaîtrez son répertoire et envisager le répertoire, vous connaîtrez le sous-ensemble des images qui y vont.

Agathe

Confirmation de:

Nous avons un système de stockage de photos avec 4 Millions d'images. Nous utilisons la base de données uniquement pour les métadonnées, et toutes les images sont stockées dans le système de fichiers à l'aide du système inverse de la nommage, où les noms de dossiers sont générés à partir du dernier chiffre du fichier, le dernier chiffre 1 etc. Par exemple: 000001234.jpg Structure de catalogue de type stockée 4 \ 3 \ 2 \ 1 \ 000001234.jpg.

Ce schéma fonctionne très bien avec l'index d'identification de la base de données, car elle remplit uniformément toute la structure des répertoires.

Hannah

Confirmation de:

En novom MS SQL 2008 Il y a une nouvelle fonctionnalité pour traiter de tels cas, elle s'appelle FILESTREAM. Regarder:

http://technet.microsoft.com/e ... .aspx

Catherine

Confirmation de:

Je les sauvegarderais dans le système de fichiers, mais cela dépend de la rapidité avec laquelle le nombre de fichiers augmentera. Ces fichiers sont-ils affichés sur Internet? Combien d'utilisateurs accéderont à ce fichier? Ce sont des questions auxquelles vous souhaitez répondre avant de pouvoir vous donner la meilleure recommandation. Je regarderais aussi Haystack de Facebook, Ils ont une très bonne solution pour stocker et maintenir des images.

De plus, si vous choisissez le système de fichiers, vous devrez diviser ces fichiers vers des répertoires. J'ai étudié ce problème et j'ai suggéré une solution, mais ce n'est en aucun cas parfait. Je divise les sections sur la table de hachage et les utilisateurs, vous pouvez en apprendre davantage sur mon
http://blinkered.ca/blog/2009/ ... stem/
.

Dominique

Confirmation de:

Aurez-vous besoin de donner vos images au nom sans équivoque?

Le processus peut-il générer ces images créer le même nom de fichier plus d'une fois? Il est difficile de dire, ne sachant pas quel appareil crée le nom du fichier, mais de dire que le périphérique est "redémarré" et après le redémarrage, il commence à nommer l'image, comme c'était la dernière fois qu'il était "réinitialisé" - Si c'est un tel problème ..

De plus, vous dites que vous obtiendrez 1 Millions d'images pour le mois. Que dis-tu de ça?

À quelle vitesse ces images vont-elles continuer à remplir le système de fichiers?

À un moment donné, ils vont se terminer et quitter 1 Millions toutes les images ou

Continuera-t-il à grandir et à développer un mois pour le mois?

Je vous demande, car vous pouvez commencer à concevoir votre système de fichiers pendant des mois, puis sur les images. Je pourrais vous suggérer de stocker des images dans une telle structure de répertoire:

imgs\yyyy\mm\filename.ext

where: yyyy = 4 digit year
mm = 2 digit month

example: D:\imgs\2009\12\aaa0001.jpg
D:\imgs\2009\12\aaa0002.jpg
D:\imgs\2009\12\aaa0003.jpg
D:\imgs\2009\12\aaa0004.jpg
|
D:\imgs\2009\12\zzz9982.jpg
D:\imgs\2010\01\aaa0001.jpg (this is why I ask about uniqueness)
D:\imgs\2010\01\aab0001.jpg

Mois, année et jours pair conviennent aux images de type image. Je ne suis pas sûr que c'est ce que vous faites, mais je l'ai fait avec une chambre de sécurité à domicile qui enleva la photo tous les 10 Secondes ... Ainsi, votre application peut passer à une certaine heure ou même à la plage dans laquelle vous pourriez penser que l'image a été générée. . Ou au lieu de l'année - Existe-t-il une autre "valeur" qui peut être apprise du fichier image lui-même? Quelques autres descripteurs sauf la date donnée par moi?

Je ne stockerais pas les données binaires dans la base de données. Jamais eu de bon travail / Bonne chance avec de telles choses. Je ne peux pas imaginer que ça marche bien avec 1 Millions de dollars. Je sauverais le nom du fichier et c'est tout. Si tous seront au format JPG, Ne gardez même pas l'extension. Je créerais un tableau de gestion dans lequel le pointeur serait stocké sur le serveur, le disque, le chemin du fichier, etc. Ainsi, vous pouvez ainsi déplacer ces images dans un autre champ et les trouver toujours.

Avez-vous besoin de marquer des images avec des mots-clés?

Si tel est le cas, vous devez créer des tables appropriées permettant une telle marque.

Tu / d'autres ont peut-être discuté de ces idées pendant que j'ai répondu .. J'espère que cela aidera ..

Catherine

Confirmation de:

Point rapide, vous n'avez pas besoin de stocker le chemin du fichier dans votre base de données. Vous pouvez simplement enregistrer une valeur numérique si vos fichiers sont nommés comme vous le décrivez. Ensuite, en utilisant l'un des circuits de stockage déjà bien définis, vous pouvez obtenir un index sous la forme d'un numéro et trouver un fichier très rapidement en recherchant la structure de répertoire.

Hannah

Confirmation de:

Je participe au projet dans lequel il est stocké au cours de l'année 8,4 Millions d'images pour documenter le statut de divers appareils. Les images plus récentes obtiennent l'accès plus souvent et les anciennes images recherchent rarement une condition qui a motivé à quelqu'un à creuser dans les archives.

Ma décision basée sur une telle utilisation était l'archivage progressif des images dans des fichiers compressés. Les images sont présentées au format JPG, Chacun environ 20 KB et pas fortement compressé, donc le schéma de compression ZIP absent. Ceci est fait simplement pour les combiner dans un enregistrement de système de fichiers, ce qui aide grandement NTFS Du point de vue de la vitesse lorsqu'il s'agit de leur déplacement du disque sur le disque ou de visualiser la liste des fichiers.

Les images plus anciennes que la journée sont combinées dans "quotidiennes" zip; Les index postaux plus vieux que le mois sont combinés dans le "Mensuel" Codes postaux; Et enfin, tout cela plus d'un an n'est plus nécessaire et, par conséquent, est supprimé.

Ce système fonctionne bien car les utilisateurs peuvent voir les fichiers (soit par le biais du système d'exploitation, soit par un certain nombre d'applications clientes), Et tous les noms sont nommés en fonction des noms des périphériques et des balises temporaires. Habituellement, l'utilisateur connaît ces deux parties de l'information et peut rapidement trouver les millions d'images.

Je comprends que cela n'est probablement pas lié à vos détails spécifiques, mais je pensais que je partagerais.

Giselle

Confirmation de:

J'aurais tendance à créer une structure de dossiers basée sur les dates, par exemple \ an \ mois \ Jour et utilisez des horodatages pour les noms de fichiers. Si nécessaire, les horodatages peuvent avoir un compteur supplémentaire si les images doivent être créées si rapidement qu'il peut y avoir plus d'un dans le milliseconde. En utilisant la séquence du plus important pour le moins important pour le tri des noms de tri, la recherche et la maintenance devient la lumière. Par exemple, Chemmsssmm [seq] .jpg

Agathe

Confirmation de:

Je peux être en retard pour cela. Mais une des solutions (Si cela convient à votre option d'utilisation) Il peut y avoir un nom de nom de fichier. C'est comment créer un chemin facilement reproductible vers le fichier à l'aide du nom du fichier et créer une structure de répertoire bien distribuée. Par exemple, vous pouvez utiliser le nom de fichier du nom de fichier comme moyen:

String fileName = "cat.gif";
int hash = fileName.hashCode();
int mask = 255;
int firstDir = hash & mask;
int secondDir = (hash >> 8) & mask;

Cela conduira au fait que le chemin sera:

/172/029/cat.gif

Ensuite, vous pouvez trouver

cat.gif

Dans la structure de répertoire en jouant de l'algorithme.

Utilisation HEX En tant que nom du directeur Noms, comment convertir

int

Valeurs:

String path = new StringBuilder(File.separator)
.append(String.format("x", firstDir))
.append(File.separator)
.append(String.format("x", secondDir)
.toString();

Par conséquent:

/AC/1D/cat.gif

J'ai écrit cet article il y a quelques années et je l'ai récemment déplacé à Medium. Il a quelques détails de plus et de l'exemple de code:
https://medium.com/%40michael. ... a4091
. J'espère que cela aidera!

Dominique

Confirmation de:

Bien que je n'ai pas servi d'image un peu de temps, j'ai précédemment écrit une petite galerie pour le service ~ 25k images en voiture avec fréquence 400 MHTS w. 512 MB RAM ou donc. Quelques expériences;

Éviter les bases de données relationnelles à tout prix; Bien que les bases de données, sans doute, ne soient pas en mesure de gérer des données, elles ne sont pas destinées à une telle utilisation. (Nous avons des bases de données hiérarchiques spécialisées pour savoir ce qu'on appelle

Systèmes de fichiers

). Bien que je n'ai que je n'ai que deviné, je suis prêt à affirmer que la base de données Kesh volera hors de la fenêtre si vous le quittez vraiment de gros gouttes. Bien que mon équipement abordable soit petit, sans toucher la base de données lorsque vous recherchez des images, la vitesse était des commandes ci-dessus.

Examiner comment le système de fichiers se comporte; sur ext3 (ou alors c'était ext2 - je me rappelle plus) La limite de la recherche efficace des sous-répertoires et des fichiers était à propos de 256; Donc, dans n'importe quel dossier, il n'y a qu'un tel nombre de fichiers et de dossiers. Encore une fois, une accélération notable. Bien que je ne connaisse rien de NTFS, de telles choses que XFS (qui, autant que je me souvienne, utilisez des arbres B), Travaillez très rapidement simplement parce qu'ils peuvent effectuer la recherche très rapidement.

Distribuer uniformément les données; Quand j'ai expérimenté ce qui précède, j'ai essayé de distribuer uniformément des données sur tous les catalogues. (j'ai fait MD5 URL et l'utiliser pour les annuaires;

/1a/2b/1a2b...f.jpg

). Ainsi, la réalisation de toute limite de performance installée prend plus de temps (et le système de fichiers cache dans tous les cas est vide pour de tels ensembles de données volumineux). (Au contraire, vous voudrez peut-être voir où sont les restrictions au stade précoce; Ensuite, vous voulez tout jeter dans le premier répertoire disponible.

Giselle

Confirmation de:

Considérez-vous la récupération d'urgence?

Certaines des solutions proposées ici conduisent à une distorsion du nom de fichier. (Par exemple, si le fichier physique a été déplacé, vous perdrez l'idée que ce fichier est réellement). Je recommande d'enregistrer un nom de fichier physique unique à, si votre liste principale des fichiers est endommagée, vous pouvez le restaurer avec une petite coquille, euh, powershell, scénario;)

De ce que j'ai lu ici, il semble que tous ces fichiers soient stockés dans un système de fichiers. Envisagez de les stocker dans plusieurs systèmes de fichiers sur plusieurs machines. Si vous avez des ressources, déterminez le système de stockage de chaque fichier sur deux machines différentes au cas où vous perdrez l'alimentation électrique et le remplacement prendra 2 journée.

Pensez quelles procédures vous devez créer pour transférer des fichiers entre machines ou systèmes de fichiers. La possibilité de le faire avec votre système en temps réel et en ligne peut vous éviter d'un mal de tête important à l'avenir.

Vous pouvez envisager d'utiliser GUID Comme nom de fichier physique au lieu d'un nombre incrémentiel au cas où votre compteur de nombres incrémentiels (Colonne d'identifiant de base de données?) Gâté.

Si nécessaire, envisagez d'utiliser CDN, par exemple Amazon S3.

Hannah

Confirmation de:

Éventuellement des lieux nappes basés sur la date de création - soit l'inclusion de toutes les informations dans le nom de fichier ou (mieux pour regarder plus tard) Se séparer par des catalogues. Je peux penser à ce qui suit, en fonction de la fréquence à laquelle vous créez des images:

Chaque jour, plusieurs images sont générées:

Year/Month/Day/Hour_Minute_Second.png

Couple par mois:

Year/Month/Day_Hour_Minute_Second.png

etc. Me comprenez-vous ... =)

Giselle

Confirmation de:

Je vois une autre mention de la base de données, mais je ne vois pas la mention de cela dans votre message. En tout cas, mon opinion sur ce sujet: coller à la base de données ou au système de fichiers. Si vous avez besoin de mélanger deux, soyez prudent. Tout devient plus difficile. Mais vous pouvez avoir. Stocker un million de photos dans la base de données - Pas la meilleure idée.

Vous pouvez être intéressé par la spécification suivante, la plupart des caméras numériques le suivent pour gérer le référentiel de fichiers:
https://en.wikipedia.org/wiki/ ... ormat
En fait, un dossier est créé, par exemple

000OLYMPUS

et les photos sont ajoutées à ce dossier. (par exemple,

DSC0000.RAW

). Quand le compteur de nom de fichier atteint

DSC9999.RAW

Un nouveau dossier est créé (

001OLYMPUS

) et l'image est à nouveau ajoutée, le compteur est réinitialisé, éventuellement avec un autre préfixe (par exemple:

P_0000.RAW

).

Vous pouvez également créer des dossiers basés sur une partie du nom du fichier. (déjà mentionné plusieurs fois). Par exemple, si votre photo est appelée

IMG_A83743.JPG

, conservation

IMG_\A8\3\IMG_A83743.JPG

. Il est plus difficile à mettre en œuvre, mais il simplifiera la recherche de fichiers.

Selon le système de fichiers (Cela nécessitera des recherches.), Vous pouvez simplement décharger toutes les images dans un dossier, mais, dans mon expérience, cela provoque généralement des problèmes de performance.

Christine

Confirmation de:

Je viens de passer le test sur zfs, parce que j'aime zfs, Et j'ai eu une taille de la section 500 Gb, sur lequel il y avait une compression. J'ai écrit un script qui généré 50-100k fichiers et les placés dans des annuaires imbriqués 1/2/3/4/5/6/7/8 (profondeur 5-8 Niveaux) et lui a permis de travailler, je pense 1 semaine. (Ce n'était pas le meilleur scénario.) Il a rempli le disque et, par conséquent, il s'est avéré 25 des millions de fichiers ou plus. L'accès à tout fichier avec un moyen connu était instantané. La liste de tout catalogue avec le célèbre chemin était instantanée.

Cependant, compter la liste des fichiers (par find) occupé 68 les heures.

J'ai également passé le test en plaçant de nombreux fichiers dans un seul répertoire. Avant que je m'arrête, j'en avais sur 3,7 Millions de fichiers dans le même répertoire. La sortie du catalogue pour le comptage a pris environ 5 minutes. La suppression de tous les fichiers de ce catalogue a pris 20 les heures. Mais la recherche et l'accès à tout fichier étaient instantanés.

Babette

Confirmation de:

S'ils ne sont pas tous nécessaires immédiatement et que vous pouvez les générer à la volée, et ce sont de petites images, pourquoi ne pas implémenter la mémoire LRU ou le cache de disque au-dessus du générateur d'images?

Il pourrait vous éviter de stocker et de sauver des images chaudes au service de la mémoire?

Blanche

Confirmation de:

Si tu as Windows, Que diriez-vous du système de fichiers exFat?

http://msdn.microsoft.com/en-u ... .aspx
Il a été conçu en tenant compte du stockage des fichiers multimédias et est disponible maintenant.

Babette

Confirmation de:

Manière facile de générer un chemin d'un grand nombre - Facile à convertir en hexadécimal, puis divisé!

par exemple

1099496034834

>

0xFFFF1212

>

FF/FF/12/12

[code]public string GeneratePath(long val)
{
string hex = val.ToString("X");
hex=hex.PadLeft(10, '0');
string path="";
for(int i=0; i<hex.length; )="" +="hex.Substring(i,2);" ;="" <="" [="" [code]public="" [url]https:="" acrobit="" acrofs[="" code]="" codes="" complets:="" div="" doc)="" et="" fullpath="GeneratePath(newId)" github.com="" i+="2" id)="" if(i+2<hex.length)="" into="" load(long="" long="" newid="getNewId();" newid;="" path="" path+="/" path;="" public="" return="" source="" stocker="" store="" store(stream="" stream="..." stream;="" télécharger:="" url]="" var="" {="" }="">
<div class="answer_text">
Vous voudrez peut-être regarder ZFS (Système de fichiers, TOM Manager de Sun) avec respect
</div>
<div class="answer_text">
Malheureusement, les systèmes de fichiers sont très mauvais (Performances avec de nombreux fichiers dans le répertoire ou des arbres de catalogue profonds, vérifiez l'heure lors du redémarrage, de la fiabilité) Lors de la gestion d'un grand nombre de petits fichiers, la solution est plus élevée, qui comprend des fichiers ZIP, Mieux si vous souhaitez utiliser le système de fichiers.

Utilisation du gestionnaire de base de données - Bien sûr, la meilleure option; Simple, par exemple, BDB ou GDBM; Même les SGBL relatifs comme MySQL Serait mieux. Seules les paresseux qui ne comprennent pas les systèmes de fichiers et les bases de données (Par exemple, ceux qui rejettent les transactions), Dire utiliser les systèmes de fichiers en tant que bases de données (ou un peu moins souvent, au contraire).
</div>
<div class="answer_text">
Qu'en est-il de la base de données avec une table contenant un identifiant et un grand objet de stockage d'images binaires? Ensuite, vous pouvez ajouter une nouvelle table. (s), Lorsque vous souhaitez associer plus d'éléments de données avec une photo.

Si vous vous attendez à la mise à l'échelle, pourquoi ne pas l'échouer maintenant? Vous gagnerez du temps comme maintenant, et plus tard, imo. Mettre en œuvre le niveau de la base de données une fois, qui est assez facile à démarrer. Ou implémenter quelque chose avec des dossiers et des noms de fichiers et de bla bla, puis passez à autre chose lorsque vous commencez à souffler MAX_PATH.
</div>
</hex.length;>

Emilie

Confirmation de:

Vous voudrez peut-être regarder ZFS (Système de fichiers, TOM Manager de Sun) avec respect

Babette

Confirmation de:

Malheureusement, les systèmes de fichiers sont très mauvais (Performances avec de nombreux fichiers dans le répertoire ou des arbres de catalogue profonds, vérifiez l'heure lors du redémarrage, de la fiabilité) Lors de la gestion d'un grand nombre de petits fichiers, la solution est plus élevée, qui comprend des fichiers ZIP, Mieux si vous souhaitez utiliser le système de fichiers.

Utilisation du gestionnaire de base de données - Bien sûr, la meilleure option; Simple, par exemple, BDB ou GDBM; Même les SGBL relatifs comme MySQL Serait mieux. Seules les paresseux qui ne comprennent pas les systèmes de fichiers et les bases de données (Par exemple, ceux qui rejettent les transactions), Dire utiliser les systèmes de fichiers en tant que bases de données (ou un peu moins souvent, au contraire).

Christine

Confirmation de:

Qu'en est-il de la base de données avec une table contenant un identifiant et un grand objet de stockage d'images binaires? Ensuite, vous pouvez ajouter une nouvelle table. (s), Lorsque vous souhaitez associer plus d'éléments de données avec une photo.

Si vous vous attendez à la mise à l'échelle, pourquoi ne pas l'échouer maintenant? Vous gagnerez du temps comme maintenant, et plus tard, imo. Mettre en œuvre le niveau de la base de données une fois, qui est assez facile à démarrer. Ou implémenter quelque chose avec des dossiers et des noms de fichiers et de bla bla, puis passez à autre chose lorsque vous commencez à souffler MAX_PATH.

Pour répondre aux questions, connectez-vous ou registre