Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Optymalizacja zapytań dla następnego i poprzedniego elementu

Oto pomysł. Możesz przenieść kosztowne operacje na aktualizację, gdy sklep spożywczy wstawi/zaktualizuje nowe oferty, a nie wtedy, gdy użytkownik końcowy wybierze dane do wyświetlenia. Może się to wydawać niedynamicznym sposobem obsługi sortowanych danych, ale może zwiększyć szybkość. Jak wiemy, zawsze istnieje kompromis między wydajnością a innymi czynnikami kodowania.

Utwórz tabelę do przechowywania następnej i poprzedniej dla każdej oferty i każdej opcji sortowania. (Alternatywnie możesz zapisać to w tabeli ofert, jeśli zawsze będziesz mieć trzy opcje sortowania -- szybkość zapytań jest dobrym powodem do denormalizacji bazy danych)

Więc masz te kolumny:

  • Typ sortowania (nieposortowane, cena, klasa i opis ceny)
  • Identyfikator oferty
  • Poprzedni identyfikator
  • Następny identyfikator

Gdy informacje szczegółowe dotyczące strony szczegółów oferty są pobierane z bazy danych, identyfikatory NextID i PrevID będą częścią wyników. Potrzebujesz więc tylko jednego zapytania dla każdej strony szczegółów.

Za każdym razem, gdy oferta jest wstawiana, aktualizowana lub usuwana, musisz uruchomić proces, który weryfikuje integralność/dokładność tabeli sorttype.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd krytyczny PHP:Niezłapany wyjątek PDO:nie można znaleźć sterownika

  2. Jak uzyskać drugą MAKSYMALNĄ DATĘ w MYSQL?

  3. liczyć bez grupy

  4. Jak znaleźć lokalizację MySQL my.cnf?

  5. laravel 4 - jak ograniczyć (przejmowanie i pomijanie) dla elokwentnego ORM?