PHP-MYSQL Count(*) d'un grosse table

Fermé
Pascal_22 Messages postés 534 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 - 12 oct. 2010 à 18:54
Pascal_22 Messages postés 534 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 - 13 oct. 2010 à 13:54
Bonjour,

J'ai une table Messages qui contient tous les messages des membres de mon site.

Quand un membre se connecte, j'affiche le nombre de message qui lui est destiné et ce à toutes les pages car c'est dans l'entête avec requête suivante:
select count(*) from Messages where IdMembre=Le_ID_du_Membre
Biensur il y a un index sur IdMembre

Pour l'instant la requête ne semble pas trop rallentir le site.

Je me demandais, est-ce que je serais mieux de créer une table avec comme champs le idMembre, NbMessage ? Donc a la place de faire toujours un count(*) j'irais lire l'enregistrement ( select NbMessage from InfosMessage where IdMembre=Le_ID_du_Membre

A chaque fois qu'un membre lui enverrait un message j'incrémentrais de 1 et pareil lorsque le membre lira son message je diminura de 1 le champs NbMessage

Est-ce mieux avec la nouvelle façon ou le count(*) est correct??


A voir également:

2 réponses

lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
13 oct. 2010 à 10:13
Bonjour,

En effet le count(*) est correct mais la solution de stocker le IdMembre et le NbrMessage dans une table est plus optimisé.
0
Pascal_22 Messages postés 534 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 29 août 2014 54
13 oct. 2010 à 13:54
Merci beaucoup Lucas06150 pour ta réponse!

Bonne journée!
Pascal_22
0