sql >> Databasteknik >  >> RDS >> Mysql

Optimera frågor för nästa och föregående element

Här är en idé. Du kan ladda ner de dyra operationerna till en uppdatering när livsmedelsaffären infogar/uppdaterar nya erbjudanden snarare än när slutanvändaren väljer data att se. Detta kan verka som ett icke-dynamiskt sätt att hantera sorteringsdata, men det kan öka hastigheten. Och, som vi vet, finns det alltid en avvägning mellan prestanda och andra kodningsfaktorer.

Skapa en tabell för nästa och föregående för varje erbjudande och varje sorteringsalternativ. (Alternativt kan du lagra detta i erbjudandetabellen om du alltid kommer att ha tre sorteringsalternativ -- frågehastighet är en bra anledning att avnormalisera din databas)

Så du skulle ha dessa kolumner:

  • Sorteringstyp (osorterat, pris, klass och prisbeskrivning)
  • Erbjudande-ID
  • Föregående ID
  • Nästa ID

När detaljinformationen för erbjudandets detaljsida efterfrågas från databasen, skulle NextID och PrevID vara en del av resultaten. Så du skulle bara behöva en fråga för varje detaljsida.

Varje gång ett erbjudande infogas, uppdateras eller tas bort, skulle du behöva köra en process som validerar integriteten/noggrannheten hos sorttypetabellen.



  1. MySQL - räkna totalt antal rader i php

  2. Hur trunkerar man en tabell med Doctrine?

  3. Hur producerar man fantomläsningar?

  4. Fel-Försök av metoden 'X.set_DbConnection(System.Data.Common.DbConnection)' för att komma åt metoden 'Y.get_Settings()' misslyckades