web-dev-qa-db-fra.com

Une grande quantité de fichiers dans le dossier de téléchargement pourrait-elle affecter les performances?

Il existe un site où les images ne sont pas organisées en dossiers basés sur des mois et des années. Il y a maintenant plus de 20 000 images dans un seul dossier (uploads). Lorsque j'essaie d'accéder au dossier via un navigateur de fichiers, il se fige notamment.

Ma question est donc la suivante: cela pourrait-il affecter les performances du site?

4
Igor Skoldin

Réponse courte : Non

Une autre question est: Est-ce que uploading un grand nombre de fichiers dans WordPress affectera les performances? La réponse à cette question: Probablement pas.

Raison :

  • WordPress utilise la base de données pour obtenir une liste des fichiers téléchargés (presque aucune différence pour de nombreux fichiers)
  • FTP utilise le système de fichiers (plus lent pour beaucoup de fichiers)

Détails :

WordPress ne répertorie pas le contenu du répertoire du dossier de téléchargement, vous pouvez donc y déposer n'importe quelle quantité de fichiers sans que WordPress ne s'en aperçoive.

Lorsque vous téléchargez un fichier via WordPress, une nouvelle entrée de base de données est créée dans votre table wp_posts. WordPress ne connaît les fichiers multimédias qu’en recherchant wp_posts; par conséquent, le téléchargement d’une tonne de fichiers ajoutera plus de lignes à cette table et, par conséquent, ralentira un peu les requêtes SQL. Honnêtement, le montant (20 000 entrées en base de données) n'aura pas un impact considérable sur la plupart des environnements d'hébergement. De plus, WordPress a des optimisations à chaque extrémité pour le rendre rapide (par exemple, il met en cache les résultats SQL et limite le nombre de lignes interrogées).

Cependant, comme vous l'avez remarqué: lors de l'accès au dossier via FTP, il se bloque. Cela est dû au fait que FTP demande une liste de tous les fichiers du dossier et que le serveur met un certain temps à répondre avec une liste de 20 000 noms de fichiers. Mais ce problème de performances n’affecte pas WordPress lui-même.

2
Philipp

Eh bien, est-ce que cela affecte les performances du site? Si vous ne remarquez pas le fonctionnement réel du site, alors probablement pas, du moins à votre nombre de fichiers.

Voici are considérations relatives aux performances pour de grandes quantités de fichiers. Les hôtes budgétaires (qui savent ce qu’ils font) imposent même des limites explicites à l’utilisation du système de fichiers.

Cependant, dans WordPress, vous ne frappez pas beaucoup le système de fichiers. Les pièces jointes fonctionnent de la manière suivante: les chemins d'accès aux fichiers (et leur taille dans le cas d'images) sont stockés in database . De cette façon, il est rarement nécessaire d'accéder (ou pire encore - d'analyser) le système de fichiers simplement pour savoir où se trouvent les fichiers et les pointer dessus.

Je n'avais pas rencontré cela directement, mais à ma connaissance, les problèmes avec de grandes quantités (telles que millions de fichiers) de pièces jointes dans WordPress commencent à apparaître au niveau de la requête de la base de données avant le système de fichiers. Mais alors, je suppose que les personnes avec des millions de fichiers disposeraient déjà d’une configuration serveur/système de fichiers capable de le gérer.

2
Rarst

Oui. Trop de fichiers ou de répertoires dans un répertoire can ont une incidence négative sur les performances du site. Bien que 20 000 euros ne soit pas si mauvais, vos problèmes commencent à apparaître à plus de 100 000+.

Assurez-vous que, dans vos paramètres WordPress, vous avez configuré le support pour répartir les téléchargements dans des dossiers portant la date (2019/01/par exemple). Notez cependant que WordPress semble utiliser la date de création du fichier pour déterminer le dossier dans lequel il place un fichier. vous devrez peut-être remplacer cette valeur si vos utilisateurs téléchargent un grand nombre de fichiers créés à une date donnée.

Voir https://hetzner.co.za/help-centre/website/inode-usage/ pour plus d'informations

0
Kirrus