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

Optymalizacja prostego zapytania na dwóch dużych tabelach

O ile mi wiadomo, najlepszym sposobem na wykonanie zapytania takiego „błyskawicznie” jest utworzenie tabeli podsumowującej, która śledzi wyświetlenia stron znajomych na stronę na twórcę.

Prawdopodobnie chciałbyś, aby był na bieżąco z wyzwalaczami. Wtedy Twoja agregacja jest już wykonana i jest to proste zapytanie, aby uzyskać najczęściej oglądane strony. Możesz upewnić się, że masz odpowiednie indeksy w tabeli podsumowań, aby baza danych nie musiała nawet sortować, aby uzyskać najczęściej oglądane.

Tabele podsumowujące są kluczem do utrzymania dobrej wydajności zapytań typu agregującego w środowiskach głównie do odczytu. Pracę wykonujesz z góry, kiedy pojawiają się aktualizacje (rzadko), a wtedy zapytania (częste) nie muszą wykonywać żadnej pracy.

Jeśli twoje statystyki nie muszą być doskonałe, a twoje zapisy są faktycznie dość częste (co prawdopodobnie ma miejsce w przypadku czegoś takiego jak odsłony), możesz grupować wyświetlenia w pamięci i przetwarzać je w tle, aby znajomi nie nie muszą brać udziału w utrzymywaniu aktualności tabeli podsumowań, ponieważ przeglądają strony. To rozwiązanie zmniejsza również rywalizację o bazę danych (mniej procesów aktualizujących tabelę podsumowań).



  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 MySQL — niezsynchronizowane polecenia; nie możesz teraz uruchomić tego polecenia

  2. Transakcje i zakleszczenia Django DB

  3. Jak zapisać jedną encję Doctrine w dwóch tabelach bazy danych (wymagane do optymalizacji MySQL)

  4. Obsługa przyjaznego SEO adresu URL ze znakami innymi niż angielskie

  5. na zduplikowanej aktualizacji klucza z warunkiem?