29-12-2006, 12:41 AM
D'après ce que je sais et les tests que j'ai effectué, InnoDb n'est pas très performant pour les tables très dynamiques (avec beaucoup de lectures/écritures). Certes, avec les transactions il permet de mieux conserver l'intégrité des données mais niveau rapidité, attention aux à la dégradation des performances.
Ensuite, pour les parties accès aux données, il y a quelques règles élémentaires que je donne ici succintement :
- Essayer le plus souvent d'extraire les données en fonction des index.
Extraire 10 enregistrement sur une table de 500 000 lignes sera plus rapide si un index est correctement positionné et utilisé
- Eviter les SELECT * FROM [table] et préférer les SELECT [champ1], [champ2], [champ3] FROM [table]. Le SELECT * va ramener tous les champs sans distinction, générant ainsi beaucoup de traffic et d'utilisation de la mémoire sur le moteur MySQL. Spécifier les champs à ramener limitera le flot d'information (inutile de ramener l'adresse mail d'un joueur pour vérifier juste son mot de passe par exemple)
- Utiliser la syntaxe EXPLAIN de MySQL pour vérifier les index utilisés et la qualité des requêtes.
Ensuite, pour les parties accès aux données, il y a quelques règles élémentaires que je donne ici succintement :
- Essayer le plus souvent d'extraire les données en fonction des index.
Extraire 10 enregistrement sur une table de 500 000 lignes sera plus rapide si un index est correctement positionné et utilisé
- Eviter les SELECT * FROM [table] et préférer les SELECT [champ1], [champ2], [champ3] FROM [table]. Le SELECT * va ramener tous les champs sans distinction, générant ainsi beaucoup de traffic et d'utilisation de la mémoire sur le moteur MySQL. Spécifier les champs à ramener limitera le flot d'information (inutile de ramener l'adresse mail d'un joueur pour vérifier juste son mot de passe par exemple)
- Utiliser la syntaxe EXPLAIN de MySQL pour vérifier les index utilisés et la qualité des requêtes.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC