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

Który z nich jest szybszym pojedynczym dużym zapytaniem czy kilkoma małymi zapytaniami?

Każda „podróż w obie strony” do bazy danych wiąże się z pewnym obciążeniem. Tak więc im mniej podróży w obie strony, tym mniej kosztów ogólnych. Weź również pod uwagę, że mniej żądań oznacza mniej pakietów od klienta do serwera. Jeśli wynik zapytania skonsolidowanego daje dokładnie to, czego chcesz, najlepszym rozwiązaniem jest jedno zapytanie. Jeśli pojedyncze zapytanie zwraca dodatkowe lub nadmiarowe dane (być może z powodu denormalizacji), wówczas dodatkowe oszczędności wynikające z pojedynczej podróży w obie strony mogą zostać utracone w przypadku przesłania dodatkowych danych.

Kolejną kwestią jest opóźnienie. Jeśli zapytania muszą być wypełniane po kolei, ponieważ część danych wyjściowych jednego jest potrzebna na wejściu następnego, konsolidacja w jednym zapytaniu wyeliminuje wszystkie opóźnienia sieciowe pomiędzy wszystkimi pojedynczymi mniejszymi zapytaniami, więc ostateczny wynik może być dostarczane szybciej. Jeśli jednak mniejsze zapytania są od siebie niezależne, uruchamianie ich równolegle może zapewnić szybsze dostarczenie wszystkich wyników, choć mniej wydajnie.

Konkluzja:odpowiedź zależy od specyfiki Twojej sytuacji. Najlepszym sposobem uzyskania odpowiedzi będzie prawdopodobnie zaimplementowanie obu sposobów, przetestowanie i porównanie wykorzystania zasobów każdej implementacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać w każdym tagu linku (a href) atrybut rel za pomocą php?

  2. jak uzyskać identyfikator ostatniego wstawienia po zapytaniu o wstawienie w aktywnym rekordzie codeigniter

  3. Funkcja MySQL LOG10() – Zwraca logarytm dziesiętny wartości

  4. MySQL — organizowanie zawartości bazy danych (liga sportowa)

  5. Hibernacja:Automatyczne tworzenie/aktualizowanie tabel db na podstawie klas jednostek