Dipende molto dal traffico del sito e probabilmente non dovresti preoccuparti di prendere decisioni del genere a meno che: 
-  Hai identificato un vero collo di bottiglia 
-  Hai identificato un vero collo di bottiglia in uno scenario molto simile in passato 
 L'ottimizzazione prematura è la parola chiave e  lo descrive Donald Knuth   1  meglio di quanto avrei potuto: 
  Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.
 L'approccio più semplice è avere una tabella   vote   , in cui si registrano tutti i voti. I campi tipici sarebbero   voteID   ,   voterID   ,   questionID   ,   voteTimestamp    e potresti calcolare i totali per ogni richiesta. Ma probabilmente questo diventerà un problema di prestazioni molto presto, specialmente con un sito ad alto traffico come StackOverflow  2 . 
 In questo caso, il mio approccio sarebbe quello di eseguire un processo in background pianificato  3  che calcola i totali e li memorizza in una tabella diversa (o nella tabella delle domande), ed eventualmente anche in un database di archiviazione dei documenti  4 . Oppure, anche in una cache di memoria  5 , se ha senso. 
 Ci sono altri modi per memorizzare i totali calcolati, questi sono i più semplici (credo). 
 Per quanto riguarda le informazioni dell'utente, ci si aspetta che cambino meno spesso, quindi è probabile che tu riesca a farla finita con la cache, senza alcun approccio speciale al realm di database. 
 In generale,   reads    è molto più veloce di   writes    e negli scenari a basso traffico comuni staresti bene semplicemente mettendo in cache sensibilmente le tue visualizzazioni. Non esiste un approccio definitivo, mescolare e abbinare quando si identificano i colli di bottiglia. 
   1  Attenzione! Link PDF. 
  2  Non possiamo davvero isolare CodeReview, è basato sulla piattaforma comune, se qualcosa è un collo di bottiglia su StackOverflow, per impostazione predefinita è (o lo sarà) su CodeReview. < br>  3   Cron  è il tuo migliore amico! 
  4  Supponendo che il database principale sia relazionale. 
  5   Memcached  è il tuo altro migliore amico!