Administrateur PHPfrance |
3088 Messages
05 mai 2007, 00:39
Euh, tu sais la première phrase mon précédent post était en fait destinée à être sarcastique. Si tu utilises une requête LIKE je te promets que tu vas très amèrement le regretter. À moins d'utiliser un index FULLTEXT (qui n'est pas fait pour ça d'ailleurs) MySQL va lire 100% de ta table à chaque requête. Si tu normalises les données (la grosse table) alors MySQL va probablement lire moins de 1% des données par requête. Si ton échantillon de données est trop petit pour noter le ralentissement alors ta table doit être minuscule. Et si ta table est assez grosse pour te donner envie de dénormaliser alors les pertes en performance vont être phénoménales. Et ne crois pas une seule seconde que j'exagère. Le jour où ta table sera plus grosse que la quantité de RAM disponible, ton serveur va tout simplement planter. D'un jour à l'autre et sans avertissement.
À part ça, comment on fait pour juger de la performance d'un script PHP. C'est un très long sujet, ça s'appelle du "profiling" (go go Google, regarde du côté de XDebug, CacheGrind et WinCacheGrind). Pour les requêtes SQL on utilise la commande EXPLAIN.