approche de stockage des fichiers de données sur des serveurs Web

voix
0

Mes informations application Web stocke des produits dans des fichiers XML sur le disque, sur le serveur Web. Ceci est parfaitement bien quand il vient à quelques produits, mais j'ai mes soucis que de grandes quantités de fichiers peuvent causer des problèmes.

Alors disons que je vais avoir 20.000 produits, cela signifie avoir 20.000 fichiers XML dans un répertoire. Je ne suis pas familier avec l'infrastructure de stockage de disque du serveur Web, seraient autant de fichiers causer des problèmes tels que baisse significative de la vitesse d'accès et / ou la fragmentation du disque excessive? Est-ce que les serveurs de stockage même fragment, est la fragmentation d'un problème que je dois vous soucier des serveurs?

Je préfère garder mes fichiers XML individuels parce que je peux y accéder directement en tant que contenu statique via http me donner la vitesse d'accès beaucoup plus rapide et la mise en cache. L'alternative serait la création d'un grand fichier de données binaires et stocker chaque xml de données de produit à l'intérieur de ce fichier en mode binaire, utilisez un script côté serveur pour extraire les xmls de ce grand fichier de données. (Oui, je sais que je peux les enregistrer dans une base de données, mais ce n'est pas le cas, je suis intéressé par.)

Créé 27/08/2009 à 00:04
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
-1

Quelle est la taille des fichiers? Combien de coups / seconde? Quelle est la popularité relative de chaque fichier? Combien de disques? Combien de RAM? Utilisez-vous RAID?

Au fond - cela dépend.

Créé 27/08/2009 à 00:13
source utilisateur

voix
0

Jetez un oeil sur le système de base de données Berkeley DB XML. Vous pouvez garder votre XML natif tout en obtenant tous les avantages ACID d'un DB.

Gardez à l'esprit que le disque IO va être parmi les plus chers des opérations.

Lien: http://www.oracle.com/database/berkeley-db/xml/index.html

Créé 27/08/2009 à 00:14
source utilisateur

voix
0

Bonne idée de limiter le nombre de fichiers ou répertoires dans un répertoire particulier.

Une stratégie est, si vous avez des identifiants uniques pour chaque fichier XML, créer une structure de dossiers qui utilise cet identifiant.

par exemple

000123 produit est stocké dans:

produits \ 00 \ 01 \ 23 \ product.xml

et le produit est stocké dans 019.384:

produits \ 01 \ 93 \ 84 \ product.xml

Cela va réduire le nombre d'éléments dans un dossier particulier à 100, ce qui est assez raisonnable.

J'espère que cela pourra aider.

Créé 27/08/2009 à 00:33
source utilisateur

voix
0

si vous arrivez à un point où vous avez que de nombreux produits, je vous recommande fortement d' utiliser un système de base de données de quelque sorte. si votre principale préoccupation est la mise en cache, il y a beaucoup de méthodes de mise en cache là - bas qui fourniront des performances statiques comme pour les systèmes pilotés par base de données. De plus, si votre entreprise est à un point où il a 20.000 produits pour gérer, gérer ensuite une table de base de données est le moindre de leurs soucis;)

Créé 27/08/2009 à 00:44
source utilisateur

voix
0

Une base de données est le chemin à parcourir. Si vous ne voulez pas les dépendances externes que vous pouvez aller avec SQLite. Il est construit en php et activé par défaut sur les versions actuelles de php.

Le magasin de données sous-jacente est généralement seul fichier.

Créé 28/08/2009 à 17:51
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more