Zapytanie żąda określonych danych z bazy danych. W SQL zapytanie używa klauzuli SELECT do określania kolumn, klauzuli FROM do określania tabel i klauzuli WHERE do filtrowania wierszy. klauzula JOIN łączy tabele. klauzula GROUP BY agreguje. klauzula ORDER BY sortuje. Baza danych analizuje zapytanie, planuje strategię wykonania i zwraca wyniki. To samo pytanie można zadać na wiele sposobów, a niektóre są znacznie szybsze od innych.
Wydajność zapytania zależy od kilku czynników. Indeksy przyspieszają wyszukiwanie w filtrowanych kolumnach. Planista zapytań wybiera między różnymi strategiami wykonania na podstawie statystyk dotyczących danych. Nieaktualne statystyki prowadzą do chybionych planów. Napisanie zapytania, które efektywnie wykorzystuje indeksy, to umiejętność. Funkcja zastosowana do indeksowanej kolumny w klauzuli WHERE zapobiega użyciu indeksu. Zapytanie, które wybiera wszystkie kolumny, gdy potrzebnych jest tylko kilka, marnuje przepustowość i pamięć. Podzapytanie wykonywane raz na wiersz jest wolne. Ta sama logika, co łączenie, jest szybka. Optymalizacja zapytań to po części sztuka, po części nauka. Baza danych udostępnia narzędzia: plany EXPLAIN, profilery zapytań i liczniki wydajności. Poznanie tych narzędzi wymaga praktyki. Zapytanie, które wykonuje się w milisekundy na małym zbiorze danych, może zająć minuty na dużym. Różnica często leży w planie, a nie w sprzęcie.
Komponenty zapytania
- SELECT — kolumny do zwrócenia
- OD — tabele do zapytania
- GDZIE — filtry wierszowe
- DOŁĄCZ — połącz tabele
- GROUP BY — agreguj wiersze
- ORDER BY — sortuj wyniki
Zapytanie to pytanie. Baza danych udziela na nie odpowiedzi. Jakość odpowiedzi zależy od sposobu, w jaki pytanie zostało zadane.
Comments
No comments yet. Be the first to share a thought.
Leave a comment