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

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??

2 réponses

  1. Merci beaucoup Lucas06150 pour ta réponse!

    Bonne journée!
    Pascal_22
    1. Bonjour,

      En effet le count(*) est correct mais la solution de stocker le IdMembre et le NbrMessage dans une table est plus optimisé.