Questa è più una domanda piuttosto che un problema che devo risolvere. Il mio back-end è veloce e le mie query funzionano alla grande, quindi non è che importante. Va bene, ma arriviamo ad esso.MySQL: come interrogare più "statistiche" in una singola query?
Ho 4 pannelli di statistiche sul mio cruscotto per quanto riguarda il numero di visualizzazioni da oggi, ieri, questa settimana e questo mese; ognuno prende una query nel mio database. Quello che stavo chiedendo è, come si potrebbero mettere insieme tutte queste domande per facilitare il carico sul database/server?
stavo guardando attraverso StackOverflow prima di chiedere e vide uno dicendo qualcosa del tipo:
SUM(case when status = 'open' then 1 else 0 end) as [Open],
SUM(case when status = 'closed' then 1 else 0 end) as [Closed]
Fonte: Gathering multiple statistics about a table in a single query
Che potrebbe essere quello che mi serve, potrebbe essere qualcosa di simile:
SUM(case when DATE(created_at) = '2015-07-23' then 1 else 0 end) as today,
SUM(case when DATE(created_at) = '2015-07-22' then 1 else 0 end) as yesterday,
SUM(case when WEEK(created_at) = '29' then 1 else 0 end) as week,
SUM(case when MONTH(created_at) = '7' then 1 else 0 end) as month
Mi stavo chiedendo se qualcuno ha alcuni migliori suggerimenti, come ho applicato questo al mio f unzione e funziona bene.
Mentre fare questo genere di cose potrebbe aiutare con il carico sul server, potrebbero anche ostacolarlo se le query finiscono per diventare eccessivamente complicate; dipende davvero dai dati necessari e dalla potenza del server. – Uueerdo
È possibile memorizzare nella cache i valori, quindi invalidare la cache quando necessario. Un altro approccio potrebbe essere l'utilizzo di trigger come il trigger e il mantenimento delle misurazioni effettive piuttosto che il loro calcolo. Pro e contro a ciascuno. Ad ogni modo, cambiando lentamente le dimensioni temporali si suggerisce qualcosa che memorizza nella cache quelle a un dato intervallo. – ficuscr
Grazie! Questo ha molto senso. Proverò entrambi gli approcci e forse vedrò come si comportano nel tempo quando ottengo più dati. Cercherò di memorizzarli nella cache, non avrò bisogno di aggiornamenti in tempo reale, quindi potrei anche provare :-) –