Jak używać oświadczenia MySQL Wyjaśnij

Jak używać oświadczenia MySQL Wyjaśnij
Użytkownik bazy danych musi uruchomić różne typy zapytań do różnych celów. Ale czasami wiele pytań nie zwraca oczekiwanych wyników, a administrator bazy danych musi znaleźć powód. MySQL zawiera przydatne narzędzie o nazwie WYJAŚNIĆ Aby zdiagnozować błąd, dla którego instrukcja zapytania nie działa poprawnie. Jest używany na początku dowolnego instrukcji zapytania, aby podać informacje o wykonywaniu zapytania. Wyjaśnij słowo kluczowe może być używane z instrukcjami wybierania, wstawu, aktualizacji, usuwania i wymiany. Jak wyjaśnić, że słowo kluczowe działa z instrukcjami wybranymi w celu zdiagnozowania błędów zapytania lub zoptymalizowania zapytania jest pokazane w tym artykule.

Wyjaśnij wyjście słów kluczowych dla Wybór zapytania:

Gdy słowo kluczowe wyjaśniające zostanie wykonywane za pomocą instrukcji SELECT, dane wyjściowe wyjaśnia zwróci następujące kolumny.

Kolumna Opis
ID Wskazuje identyfikator zapytania. Reprezentuje sekwencyjną liczbę wybranych zapytań.
Wybierz rodzaj Wskazuje typ zapytania. Typ może być prosty, podstawowy, podtąd, związek itp.
tabela Wskazuje nazwę tabeli używanej w zapytaniu.
partycje Wskazuje partycje zbadanej tabeli partycjonowanej.
typ Wskazuje typ połączenia lub typ dostępu.
możliwe_keys Wskazuje klawisze, które mogą być używane przez MySQL do znalezienia wierszy z tabeli.
klucz Wskazuje indeks używany przez MySQL.
key_len Wskazuje długość indeksu, który będzie używany przez optymalizator zapytania.
Ref Wskazuje kolumny lub stałe porównywane z indeksem wymienionym w kolumnie kluczowej
wydziwianie Wskazuje listy badanych rekordów.
przefiltrowany Wskazuje szacowany procent wierszy tabeli, które zostaną przefiltrowane przez stan.
dodatkowy Wskazuje dodatkowe informacje dotyczące planu wykonania zapytania.

Załóżmy, że masz dwa powiązane tabele nazwane klienci I Zamówienia W nazwie bazy danych firma. Niezbędne instrukcje SQL do tworzenia bazy danych i tabel z danymi podano poniżej.

Utwórz firmę bazy danych;
Korzystaj z firmy;
Utwórz klientów tabeli (
Id int (5) Klucz podstawowy auto_increment,
Nazwa varchar (50) nie null,
Mobile_no Varchar (50) nie null,
e -mail varchar (50) nie null) silnik = innodb;
Utwórz zamówienia na tabeli (
Id Varchar (20) klucz podstawowy,
data order_date,
customer_id int (5) nie null,
dostawa_address varchar (50) nie null,
kwota int (11),
Klucz zagraniczny (customer_id) referencje klientów (id))
Silnik = innodb;
Wstaw do wartości klientów
(Null, „Johnathan”, „18477366643”, „[email protected] '),
(Null, „Musfiqur Rahman”, „17839394985”, „[email protected] '),
(Null, „Jimmy”, „14993774655”, „[email protected] ');
Wstaw do wartości zamówień
(„1937747”, „2020-01-02”, 1, „New Work”, 1000),
(„8633664”, „2020-02-12”, 3, „Texas”, 1500),
(„4562777”, „2020-02-05”, 1, „California”, 800),
(„3434959”, „2020-03-01”, 2, „New Work”, 900),
(„7887775”, „2020-03-17”, 3, „Texas”, 400);

Uruchom następującą instrukcję, aby zobaczyć bieżącą listę rekordów klienci tabela.

Wybierz * od klientów;

Uruchom następującą instrukcję, aby zobaczyć bieżącą listę rekordów Zamówienia tabela.

Wybierz * z zamówień;

Użycie prostego stwierdzenia wyjaśniania:

Poniższa instrukcja SQL zwróci słowo kluczowe wyjaśnienia instrukcji prostego wyboru, które pobiera wszystkie rekordy z tabeli klientów.

Wyjaśnij Wybierz * od klientów \ g;

Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji. Jest to zapytanie z pojedynczym stołem i żadne specjalne klauzule, takie jak dołączenie, związek itp. są używane w zapytaniu. W tym celu wartość Wybierz rodzaj Jest PROSTY. Tabela klientów zawiera tylko trzy rekordy, dlatego wartość wydziwianie to 3. Wartość filtrowanego wynosi 100%, ponieważ wszystkie rekordy tabeli są pobierane.

Użycie wyjaśnienia w wybierz zapytanie z dołączeniem:

Poniższe oświadczenie wyjaśniające jest stosowane w wybranym zapytaniu dwóch tabel z klauzulą ​​łączenia i warunkiem gdzie.

Wyjaśnij wybranych klientów.Nazwa, zamówienia.Order_date, zamówienia.kwota
Od klientów
Dołącz do zamówień (klienci.id = zamówienia.Identyfikator klienta)
Gdzie klienci.nazwa = „Johnathan” \ g

Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji. Tutaj, Wybierz rodzaj jest prosty dla obu tabel. Dwie tabele są powiązane przez związek jeden do wielu. Klucz podstawowy z klienci Tabela jest używana jako obcy klucz z Zamówienia tabela. W tym celu wartość możliwe_keys Dla drugiego rzędu jest Identyfikator klienta. Filtowana wartość to 33% Do klienci stół, ponieważ „Johnathan” jest pierwszym wpisem tej tabeli i nie ma potrzeby więcej wyszukiwania. Odfiltrowana wartość Zamówienia Tabela jest 100% ze względu na wszystkie wartości Zamówienia Tabela wymagana do sprawdzenia w celu pobrania danych.

Istnieje ostrzeżenie w wyniku powyższego instrukcji. Poniższa instrukcja służy do zobaczenia zapytania, które jest wykonywane po dokonaniu jakiejkolwiek zmiany przez optymalizator zapytania lub sprawdź przyczynę błędu, jeśli wystąpi jakikolwiek błąd po wykonaniu zapytania.

Pokaż ostrzeżenia \ g

W zapytaniu nie ma błędu. Wyjście pokazuje wykonane zmodyfikowane zapytanie.

Użycie Wyjaśnienia, aby znaleźć błąd Wybierz zapytanie:

Wybierz zapytanie, które jest używane w poniższej instrukcji tłumaczenia, zawiera błąd. Format daty obsługiwany przez MySQL to 'ROYYY-MM-DD'. Ale w warunkach tego zapytania wartość daty podaje się jako 'DD / MM / RRRR' to jest złe.

Wyjaśnij wybranych klientów.Nazwa, zamówienia.Order_date, zamówienia.kwota
Od klientów
Dołącz do zamówień (klienci.id = zamówienia.Identyfikator klienta)
Gdzie zamówienia.order_date = '10-10-2020 '\ g

Po uruchomieniu instrukcji pojawi się następujące dane wyjściowe. Pokaże dwa ostrzeżenia. Jeden jest domyślnie wyjaśnionym w poprzednim przykładzie, a drugi dotyczy błędu daty wspomnianej wcześniej.

Uruchom instrukcję, aby zobaczyć błąd.

Pokaż ostrzeżenia \ g

Dane wyjściowe wyraźnie pokazuje błąd z komunikatem o błędzie i nazwą kolumny.

Użycie wyjaśnienia w wybierz zapytanie z Union All Operator:

Union All Operator jest używany w zapytaniu Wybierz do pobrania wszystkich pasujących wartości kolumn z duplikatami z powiązanych tabel. Poniższe stwierdzenie wyświetli wyświetlanie wyników zastosowania Unii wszystkich operatorów pomiędzy klienci I Zamówienia tabele.

Wyjaśnij Wybierz identyfikator identyfikatora
Od klientów
Związek All
Wybierz Customer_ID jako identyfikator
Z zamówień \ g

Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji. Tutaj wartość Wybierz rodzaj Jest UNIA dla drugiego rzędu wyjścia i wartości Dodatkowy jest indeksem.

Wniosek:

W tym artykule pokazano bardzo proste zastosowania oświadczenia wyjaśniającego. Ale to stwierdzenie można wykorzystać do rozwiązania różnych skomplikowanych problemów z bazą danych i optymalizacji bazy danych w celu uzyskania lepszej wydajności.