sql >> Databasteknik >  >> RDS >> Mysql

Optimera en enkel fråga på två stora tabeller

Så vitt jag vet är det bästa sättet att göra en fråga som den där "blixtsnabb" att skapa en sammanfattningstabell som spårar väns sidvisningar per sida och skapare.

Du skulle förmodligen vilja hålla den uppdaterad med triggers. Då är din aggregering redan gjord åt dig, och det är en enkel fråga för att få de mest visade sidorna. Du kan se till att du har korrekta index i sammanfattningstabellen, så att databasen inte ens behöver sortera för att få den mest visade.

Sammanfattningstabeller är nyckeln till att upprätthålla god prestanda för frågor av aggregeringstyp i läsmiljöer. Du gör jobbet i förväg, när uppdateringarna sker (sällan) och då behöver frågorna (frekventa) inte göra något arbete.

Om din statistik inte behöver vara perfekt, och dina skrivningar faktiskt är ganska frekventa (vilket förmodligen är fallet för något som sidvisningar), kan du gruppera vyer i minnet och bearbeta dem i bakgrunden, så att vännerna inte inte behöva ta tag i att hålla sammanfattningstabellen uppdaterad när de tittar på sidor. Den lösningen minskar också konflikter på databasen (färre processer som uppdaterar sammanfattningstabellen).



  1. Installera webbserver i Windows XP med Apache2, PHP5 och MySQL4 – Del 1

  2. PostgreSQL skapa index på cast från sträng till datum

  3. Lagra och indexera YAML med PostgreSQL, med Javascript lib eller återanvändbara funktioner?

  4. Vilket är det bästa sättet att undvika tecken som inte är formaterade i Oracles to_char?