Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%)
|
Chcę sprawdzić, czy w danym dniu padła odpowiedź konkretnego użytkownika. Napisałem sobie 2 zapytania i zastanawiam się, które będzie bardziej optymalne?
czy
Ta tabela będzie z czasem spora np kilka mln rekordów. Ten post edytował robos85 17.02.2010, 16:15:24 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 5 Dołączył: 2.11.2006 Skąd: 52.259 °N, 21.020 °E Ostrzeżenie: (0%)
|
Niezależnie od silnika bazodanowego, czy indeksów (zakładam, że w obu wypadkach będzie ten sam silnik i będą lub nie założone indeksy na id, user_id, date) drugie zapytanie (z limit 1) będzie szybsze lub równe.
W przypadku, kiedy istnieje taki rekord wystarczy jego jedno wystąpienie, by baza danych zwróciła wynik, do drugiego (z count) musi zliczyć wszystkie. W przypadku, kiedy nie istnieje odpowiedni rekord oba zapytania wykonają identyczne sprawdzenie. PS1. Koszt agregatu pomijam, jako mało tutaj istotny, ale i tak działa na niekorzyść zapytania pierwszego. |
|
|
|
robos85 Które zapytanie bardziej optymalne? 17.02.2010, 16:14:39
erix Zależy od silnika bazodanowego oraz indeksów.
Pod... 17.02.2010, 17:36:41
wiiir nie wiem jak w innych bazach ale aktualnie jestem ... 24.02.2010, 09:55:17 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 11:49 |