2015-08-31 10 views
5

Stackoverflow celebra 10 milioni di domande. Complimenti!Come vengono realizzati i 10 milioni di contatori di domande su StackOverflow?

ci Fornire questo link: https://stackoverflow.com/10m

Ci sono 3 contatori visualizzati, e il numero di ogni contatore è in aumento veloce e non statico.

Tuttavia, non vedo alcuna richiesta AJAX per la visualizzazione del risultato recente di ogni contatore.

Ho anche questo contatore nel nostro forum, ma per ottenere il numero di post recenti, faccio una richiesta AJAX ogni 3 secondi, eseguendo la query SELECT MAX(id) AS total_posts FROM forumposts da visualizzare.

Lo so, questa non è la soluzione migliore che abbiamo, e non sarà più corretta se un post viene cancellato. L'utilizzo del comando SELECT COUNT(id) è troppo lento, poiché abbiamo anche più di 10 milioni di post.

Quindi, come StackOverflow sta visualizzando l'aumento dei loro contatori senza alcuna richiesta? Sembra essere una soluzione migliore per me e mi piacerebbe usarlo anche per il nostro forum.

+1

Più adatto a meta TBH –

+0

Ci sono alcune domande correlate sulla meta, come questo http://meta.stackoverflow.com/q/302925/1301076 – rjdown

+0

Aumenta a seconda della media delle domande inviate senza bisogno di richiedere una richiesta, è possibile capirlo controllando questa pagina http://stackoverflow.com/unanswered – Radi

risposta

7

Sta utilizzando websockets. Puoi vederlo dalla scheda di rete. wss://qa.sockets.stackexchange.com/ Dalla richiesta, sembra che ottenga un conteggio totale ogni volta. enter image description here

conteggio SQL essendo modo lento Un uomo povero di migliorare le prestazioni sarebbe quello di tenere traccia delle statistiche da soli con la creazione di un tavolo questo è registra il conteggio delle righe. Saresti gravato dall'assicurarti di aggiornare quel tavolo ogni volta che elimini o aggiungi nuovi record. Prima di fare questo, fare qualche ricerca su indici e le seguenti domande

+0

Ho visto questo. Leggendo ora su websockets. È il protocollo di comunicazione tra server e client. E cosa pensi sia lo sfondo di ogni contatore? StackOverflow conta davvero milioni/miliardi di domande, modifiche, voti e altro dal database ogni millisecondo per inviare il numero corretto? – lickmycode

+0

Presumo che queste statistiche siano generate in base alla media degli anni passati. Richiedere tutte queste statistiche dal db ogni secondo o due comporterebbe un considerevole consumo di risorse del server senza grandi guadagni. – Rehmat

+0

@lickmycode Potrebbero anche non fare affidamento sul db per contare tutti i record, potrebbero avere una tabella in cui mantengono solo le statistiche. Ma non possiamo davvero sapere ... –

Problemi correlati