Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è il modo giusto per contare i commenti, le visite e i Mi piace agli articoli in un indice degli articoli?

Sarebbe meglio ammettere la ridondanza in questo caso, per migliorare la velocità. Alla tabella delle notizie, aggiungi questi campi:

comments_count int not null default 0,
likes_count int not null default 0,
hits_count int not null default 0

Quando un commento/mi piace/hit viene aggiunto/eliminato, se il database supporta i trigger, attiva un incremento/decremento del contatore di riferimento e, in caso contrario, fallo manualmente su ogni inserimento/eliminazione (forse una stored procedure?).

Questo tipo di dati viene più spesso letto che scritto, quindi per ottimizzare la velocità di lettura, rallentare la velocità di scrittura e lo spazio di archiviazione non è un grosso problema.

Di tanto in tanto, sarebbe corretto eseguire una query che aggiorni questi contatori se per qualche motivo diventano errati.