Bon nombre d'entre nous installer de scripts côté serveur (ASP, CGI ou PHP) sur nos sites web, et beaucoup de scripts de ce stockent des données sur le serveur. Cependant, scripts mal conçus peuvent rencontrer des problèmes de performance et parfois même la corruption des données sur les sites occupés (et pas tellement occupé).
Si vous n'êtes pas un programmeur, pourquoi cela importe pour vous ?
Réponse : même si vous êtes juste l'installation et l'utilisation de scripts côté serveur, vous devrez vous assurer que les scripts que vous choisissez ne pas au hasard de rompre ou de corrompre vos données.
Tout d'abord, quelques exemples des types de scripts qui stockent des données sur les serveurs web comprennent :
(Bien sûr, beaucoup de scripts dans chacun de ceux-ci (et autres) les catégories sont bien conçus et exécuter parfaitement même sur des sites très occupé).
1. Suivi automatiques stockent généralement la liste des abonnés à l'autorépondeur, ainsi où dans la séquence de messages, chaque abonné est. Exemples de scripts d'autorépondeur : http://www.scriptcavern.com/scr_email_auto.php
2. Annonce scripts stockent (au moins) une liste de toutes les annonces classées, placés par les visiteurs. Exemples de ce type de script : http://www.scriptcavern.com/scr_classified.php
3. Gratuit pour tous les liens de scripts de stockent une liste de tous les liens affichés par les visiteurs. Voir quelques exemples de scripts répertoriés au : http://www.scriptcavern.com/scr_ffa.php
4. Top site scripts habituellement magasin une liste des membres du site haut de la page, ainsi que des informations sur le nombre de « votes » que chacun a reçu. Pour plus d'exemples de ce type de script, consultez http://www.scriptcavern.com/scr_topsite.php
Quel genre de scripts ont donc des problèmes ? Et quel genre de problèmes je parle ?
Bien les problèmes de principe tous se rapportent à ce qui se passe lorsque les bits de données provenant de multiples besoins d'utilisateurs seront stockées sur mise à jour en même temps. Certains scripts de gérer ces situations bien, mais d'autres n'est pas...
CORRUPTION DES DONNÉES
C'est un problème de corruption de données commun qui peut se produire avec beaucoup de scripts :
1. Lorsque certains bits de données doit être mis à jour, une copie du script côté serveur démarre en cours d'exécution et puis commence à mettre à jour.
2. Si un autre utilisateur arrive et fait une mise à jour avant la première copie du script est terminé, une deuxième copie du script démarre en cours d'exécution en même temps.
3. Il existe un certain nombre de choses peuvent aller mal, maintenant par exemple des moyens :
(a) si la première copie du script lit les données, puis la deuxième copie lit les mêmes données, puis la première copie met à jour les données, puis la deuxième copie met à jour les données ? Réponse : toutes les modifications apportées par la première copie du script peuvent se perdre.
(b) si la première et la seconde copie de scripts sont deux ajoutant plusieurs bits de données dans le magasin en même temps ? Par exemple, imaginez que chacun doit conserver le titre, description et le nom de la personne à poster une petite annonce. Eh bien, ce qui peut arriver (avec quelques scripts) est les deux petites annonces peut obtenir entremêlés, ainsi vous obtiendrez peut-être (par exemple) manchette-1, 1-DESCRIPTION, HEADLINE-2, personne-1, 2-DESCRIPTION, personne-2. Ou, pire encore, vous obtiendrez peut-être bits de chaque partie de chaque petite annonce, mélangé avec les bits de l'autre. Ce genre de chose est généralement vraiment une mauvaise nouvelle, que vos données peuvent donc devenir inutilisable à partir de ce moment.
Est-ce que cela ne semble trop peu probable qu'un problème de s'inquiéter ? Ne Banque sur it.... même si cela se produit seulement 1 fois dans 1 000 ou 1 à 10 000, finalement cela se produira : vous avez besoin d'une solution.
Donc la vraie question est : est-il possible pour les programmeurs de créer des scripts sans ce genre de problèmes ? Heureusement, la réponse est Oui, et il y a un certain nombre de façons que les programmeurs peuvent répondre :
1. Ils peuvent stocker chaque bit de données dans un fichier distinct. Ce n'est pas nécessairement une solution totale par lui-même (en particulier, un script qui fait juste cela pourrait encore a-t-elle des problèmes si plusieurs copies d'un script de mise à jour le même fichier en même temps), mais cela fait une corruption des données moins probable, et si la corruption fonctionne, au moins il ne corrompre le magasin de données entière en une fois.
2. Ils peuvent utiliser verrouillage de fichier. Cela signifie que si une copie d'un script fonctionne avec un fichier, une autre copie du script est empêchée de travailler sur ce dossier, jusqu'à ce que le premier exemplaire a fini. Verrouillage de fichier œuvres si fait correctement, mais programmation dans un script doit être fait très soigneusement et précisément, pour tous les cas possible... même un petit bug ou omission peut permettre la possibilité de corruption de données-en par la porte dérobée !
3. Ils peuvent utiliser une base de données (comme MySQL) pour stocker les données. Pourvu que les données sont correctement structurées dans la base de données, la base de données gère automatiquement le verrouillage. Et, car le programmeur n'a pas d'écrire leurs propres routines de verrouillage spéciales, la possibilité de bogues et des omissions sont beaucoup réduites.
PROBLÈMES DE PERFORMANCES
Bien sûr, évitant d'avoir vos données corrompues, devrait être la considération primordiale dans le choix d'un script, mais y a-t-il autre chose que nous avons besoin de s'inquiéter ?
Réponse : Performance
Bien sûr, tous les webmasters visent à générer des sites web de trafic élevé occupé... mais vos scripts sera capables de gérer la charge ?
Revenir en arrière et de relire le paragraphe sur le verrouillage de fichier. Maintenant réfléchir à ce qui se passerait si toutes les petites annonces sur votre page classée ont été stockées dans un fichier unique (ou tous les liens sur votre site en haut de la page, ou tous les abonnés à votre autorépondeur, etc..).
Que se passerait-il ?
Réponse : Parce que chaque mise à jour ne peut être effectuée après que la précédente mise à jour a été complètement terminé, votre site peut être lente, ou même pas capable de traiter les demandes de vos utilisateurs.
Alors, quelle est la solution ?
Il n'y a que les programmeurs peuvent utiliser deux options :
1. Ils peuvent utiliser beaucoup de petits fichiers et dossier-lock chacun individuellement (par exemple, un par classés, un par la liste des top site, etc..). Bien sûr, cela doit être manipulé avec beaucoup d'attention...
2. Ils peuvent utiliser une base de données (comme MySQL), bases de données permettent à tout un dossier individuel ("row") mise à jour, même lorsque l'autre est également mis à jour.
EN CONCLUSION
Maintenant, nous allons résumer :
1. Les scripts qui stockent des données dans les fichiers de besoin d'utiliser le verrouillage de fichier afin d'éviter la corruption des données, et ils ont aussi besoin de briser les données en blocs modifiables séparément afin d'éviter des problèmes de performances sur les sites occupés.
2. Les scripts qui stockent des données dans les bases de données (comme MySQL), à condition bien sûr qu'ils ont été codés correctement, sont généralement moins susceptibles de souffrir de problèmes de corruption de données ou de performance.
Et un point supplémentaire :
3. Même dans le meilleur scénario n'est pas insensible aux défaillances du matériel sur le disque dur, votre hôte web être frappé par la foudre et tous les autres pagaille qui peut se produire. Donc, faire les sauvegardes régulières de données que vous ne supporteriez pas de perdre !
En bref, même si vous n'êtes pas un programmeur du script, vous devez être conscients des problèmes de stockage de données. À l'avenir, lorsqu'il examine un script pour votre site web, n'ayez pas peur de poser des questions difficiles sur comment il stocke les données et la façon dont il gère plusieurs utilisateurs.