(Ja, jag lägger till en annan svar. Motivering:Det tar upp det underliggande problemet på ett annat sätt.)
Det underliggande problemet verkar vara att det finns en ständigt växande "transaktionstabell" från vilken olika statistik härleds, såsom SUM(amount) . Prestanda för detta kommer bara att bli sämre och sämre när tabellen/tabellerna växer.
Grunden för detta svar kommer att vara att titta på data på två sätt:"Historik" och "Aktuell". Transactions är historien. En ny tabell skulle vara Current totalt för varje användare. Men jag ser flera sätt att göra det på. Var och en involverar någon form av delsummor för att undvika att lägga till 773 000 rader för att få svaret.
- Det traditionella banksättet... Varje natt räknar upp dagens
Transactionsoch lägg till dem iCurrent. - Sättet med materialiserad vy... Varje gång en rad läggs till i
Transactions, ökaCurrent. - Hybrid:Spara dagliga delsummor i en "sammanfattningstabell". Summera dessa delsummor för att få
SUMtill i går kväll.
Mer diskussion i min blogg på Sammanfattningstabeller .
Observera att det upp till andra saldot för bank- eller hybridsättet är lite knepigt:
- Få gårdagens belopp
- Lägg till eventuella transaktioner som inträffade under dagen.
Alla tillvägagångssätt kommer att vara mycket snabbare än att skanna alla 773 000 rader för användaren, men det blir mer komplex kod.