Question

Un CMS que nous utilisons appelés magasins Kentico Media Library fichiers sur le système de fichiers, et stocke également un enregistrement dans la base de données méta-données de fichiers (titre, description, etc.). Lorsque vous utilisez un contrôle bibliothèque multimédia à la liste de ces éléments, il lit les fichiers du système de fichiers pour les afficher. Est-il plus rapide à partir du système de fichiers, puis d'interroger la base de données? Ou serait-il plus rapide pour exécuter une requête simple sur la table fichier multimédia de base de données de données méta?

Hypothèses:

  • Kentico est une application ASP.NET, de sorte que le code est en C #. Ils utilisent des jeux de données simples pour passer leurs données autour.
  • Seules les données méta seraient lues à partir des fichiers directs comme nom de fichier et la taille.
  • Au plus 100 fichiers par dossier.
  • La requête de base de données serait indexée correctement.
  • La requête serait quelque chose comme:

    SELECT *
    DE Media_File
    OÙ CheminFichier LIKE 'chemin / vers / courant / Médias / Dossier /%'

Était-ce utile?

La solution

La réponse courte est, elle dépend d'un certain nombre de facteurs variables, mais le système de fichiers est généralement plus rapide qu'un DB.

La réponse est plus:. L'analyse du système de fichiers local à un endroit connu est généralement rapide, car la ressource est proche de la maison et les ordinateurs sont conçus pour effectuer ces opérations très efficacement

CEPENDANT, que ce soit plus rapide qu'une base de données dépend de la mise en œuvre de la base de données, où il se trouve, et la quantité de données dont nous parlons. Dans l'ensemble, DBMSes sont optimisés pour stocker de façon très efficace et de requête grands ensembles de données, tandis qu'un système de fichiers ne peut « plat » scanner le disque aussi vite que le matériel va. À quelle vitesse ils sont dépend de la mise en œuvre (SQLite ne va pas être aussi rapide globale que MS Sql Server ou Oracle), le système de communication (transfert de fichiers sur un réseau est le plus lent chose que votre ordinateur fait régulièrement, en revanche, les pipes nommés fournir très rapidement la communication inter-processus), et combien le matériel que vous jetez à lui (un serveur lame quadri-Xeon avec striping SATA RAID va être beaucoup plus rapide que votre ordinateur portable Celeron).

Autres conseils

En plus de ce que les autres ont dit ici, la mise en cache peut entrer en jeu trop en fonction de vos paramètres de cache. Ne pas oublier de prendre en compte les comme Kentico, SQL, IIS et tous ont différents niveaux de mise en cache et sont utilisés à des moments différents en fonction de votre installation, la configuration, et auquel cas l'utilisation (s) vous optimisez.

En ce qui concerne les problèmes de performance à ce niveau, la réponse est souvent: ça dépend. Donc, votre propre solution de référence pour voir que l'on aide plus des besoins en situation de vos utilisateurs particuliers.

Kentico a fait libérer un couple de guides de performance (pour 5,0 et un autre pour

scroll top