EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Programmation arrow Base de données arrow Verrouillage, concurrentialité et performance de MySQL
Samedi 5 juil 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ? 
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
Lettres de nouvelles
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
avr 12 2006
Verrouillage, concurrentialité et performance de MySQL Version imprimable Suggérer par mail
Appréciation des utilisateurs: / 1
FaibleMeilleur 
Programmation - Base de données
Ecrit par Kamal AOUDA   
12-04-2006
Verrouillage, concurrentialité et performance de MySQL

Les mécanismes de verrouillage de MySQL différent selon le type de table utilisé.

Dans les tables de type MyISAM et HEAP, seul le verrouillage de niveau table est supporté. Cela pourrait être pénalisant pour les traitements parallèles et la concurrentialité des applications qui font majoritairement appel à des opérations d’écriture. Or cela n’est pas le cas de la plupart des applications de commerce électronique qui comme nous l’avons vu dans la partie 3 font de nombreuses sélections, peu d'effacements, des modifications et des insertions basées sur des clés. Les tables MyISAM sont donc bien optimisées pour ce genre d’application.

Les tables de type InnoDB supportent le verrouillage de niveau ligne. Elles offrent un meilleur degré de concurrentialité mais elles consomment plus de mémoire que les verrous de table. Notons par ailleurs que les verrous de niveau ligne:

* Sont plus lents que les verrous de table surtout lorsqu’ils sont appliqués à une grande portion de la table.

* Donnent de piètres résultats avec les requêtes Group By ou tout autre requête qui scanne l’intégralité d’une table.

* Ont un coût d’administration qui est supérieur à celui des verrous de table.

Cela dit, les verrous de table sont plus performants que les verrous de ligne dans les cas suivants :


* Les opérations de lecture.
* Les opérations de modification portant sur des clés précises (comme celles de l’exemple ci-dessous).

UPDATE table_name SET column=value WHERE unique_key#
DELETE FROM table_name WHERE unique_key=#

* De nombreux scans / GROUP BY sur toute la table, sans aucune écriture .

Les autres niveaux de verrouillage possibles dans MySQL sont :

* Les verrous de niveau page : disponibles uniquement avec les tables de type BDB leur performance est tributaire de la taille de la page (ensemble constitué par deux ou plusieurs lignes). Avec ces verrous la concurentialité est d’autant plus faible que la taille des pages est grande.

* Le versionage : un thread qui écrit et de nombreux autres qui lisent. Dans ce cas Les verrous s’appliquent aux opérations d’écriture et non aux opérations de lecture.

Le tableau 59 résume la relation entre la performance, les mécanismes de verrouillage, les moteurs de stockage et la concurentialité.
 

Verrouillage

Concurentialité

Charge de travail

Moteur de stockage

Table La plus faible Faible MyISAM, Heap, Merge
Ligne / page Moyenne Moyenne InnoDB /BDB
Versionage La plus élevée Elevée InnoDB
Dernière mise à jour : ( 12-04-2006 )
< Précédent   Suivant >
Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional
New Page 2

Livre à l'intention des développeurs déjà familiarisés avec PHP et MySQL. Il contient plusieurs exemples qui montrent comment développer des applications de commerce électronique de qualité. Outre les questions relatives au design et à la programmation, ce livre donne des conseils pour augmenter les ventes en ligne et diminuer le coût de traitement des commandes grâce aux services web XML.

 

Lien sur le site d'Apress.

 

Références

 

http://www.apress.com/book/bookDisplay.html?bID=356

Cristian Darie, Mihai Bucica , ISBN: 1-59059-392-8 , 568 pp., Nov 2004

Moteur de recherche
Recommander ce site
Collaboration
Téléchargements
Derniers événements
Aucun événement
Sondages

Les bases de données objet conviennent-elles aux applications e-commerce ?

  
Blogs Ecommerce
Blog de capitaine commerce
top

Ce site a été crée avec le CMS Mambo. Un logiciel gratuit disponible sous licence GPL.

Copyright Ecommerce DEV 2006.

Hosted by SiteGround