sql >> Databáze >  >> RDS >> Mysql

Optimalizace dotazů pro další a předchozí prvek

Zde je nápad. Můžete přesunout drahé operace na aktualizaci, když obchodník s potravinami vloží/aktualizuje nové nabídky, spíše než když koncový uživatel vybírá data k zobrazení. Může se to zdát jako nedynamický způsob zpracování dat třídění, ale může to zvýšit rychlost. A jak víme, vždy existuje kompromis mezi výkonem a dalšími faktory kódování.

Vytvořte tabulku, která bude obsahovat další a předchozí pro každou nabídku a každou možnost řazení. (Alternativně to můžete uložit do tabulky nabídek, pokud budete mít vždy tři možnosti řazení – rychlost dotazů je dobrým důvodem k denormalizaci vaší databáze)

Takže byste měli tyto sloupce:

  • Typ řazení (Netříděno, Cena, Třída a Popis ceny)
  • ID nabídky
  • Předchozí ID
  • Další ID

Při dotazu na podrobné informace pro stránku s podrobnostmi nabídky z databáze budou součástí výsledků NextID a PrevID. Budete tedy potřebovat pouze jeden dotaz pro každou stránku podrobností.

Pokaždé, když je nabídka vložena, aktualizována nebo odstraněna, budete muset spustit proces, který ověří integritu/přesnost tabulky typu řazení.



  1. Jak mohu vyřešit ORA-00911:chyba neplatného znaku?

  2. Pět nejlepších softwarových aplikací pro přístup k serverům MySQL/MariaDB

  3. Příklady SYSDATE() – MySQL

  4. Hibernate nemohl získat hodnotu další sekvence