Come usare l'istruzione MySQL Explay

Come usare l'istruzione MySQL Explay
L'utente del database deve eseguire diversi tipi di query per scopi diversi. Ma a volte molte domande non restituiscono i risultati previsti e l'amministratore del database deve scoprire il motivo. Mysql contiene uno strumento utile chiamato SPIEGARE per diagnosi dell'errore per il quale l'istruzione di query non funziona correttamente. Viene utilizzato all'inizio di qualsiasi dichiarazione di query per fornire informazioni sull'esecuzione della query. Spiegare la parola chiave può essere utilizzata con le istruzioni di selezione, inserire, aggiornare, eliminare e sostituire. Come spiegare le parole chiave funzionano con dichiarazioni selezionate per diagnosticare errori della query o ottimizzare la query è mostrata in questo articolo.

Spiega l'output delle parole chiave per la query selezionata:

Quando la parola chiave spiega viene eseguita con istruzione select, l'output di spiega restituirà le seguenti colonne.

Colonna Descrizione
id Indica l'identificatore della query. Rappresenta il numero sequenziale di query selezionate.
Select_Type Indica il tipo di query selezionata. Il tipo può essere semplice, primario, sottoquery, unione, ecc.
tavolo Indica il nome della tabella utilizzato nella query.
partizioni Indica le partizioni della tabella partizionata esaminata.
tipo Indica il tipo di join o il tipo di accesso alle tabelle.
possibile_keys Indica le chiavi che possono essere utilizzate da MySQL per trovare righe dalla tabella.
chiave Indica l'indice utilizzato da mysql.
key_len Indica la lunghezza dell'indice che utilizzerà da parte dell'ottimizzatore query.
rif Indica le colonne o le costanti che vengono confrontate con l'indice denominato nella colonna chiave
file Indica gli elenchi dei record che sono stati esaminati.
filtrato Indica la percentuale stimata delle righe della tabella che verranno filtrate dalla condizione.
extra Indica le informazioni aggiuntive relative al piano di esecuzione delle query.

Supponiamo di avere due tabelle correlate denominate clienti E ordini Nel database chiamato azienda. Le istruzioni SQL necessarie per la creazione del database e le tabelle con i dati sono riportate di seguito.

Creare la società di database;
Usa la compagnia;
Crea clienti Table (
Id int (5) Chiave primaria Auto_Increment,
Nome varchar (50) non null,
mobile_no varchar (50) non null,
Email varchar (50) non null) motore = innodB;
Crea ordini da tavolo (
ID Varchar (20) Chiave primaria,
DATA ORDING_DATE,
customer_id int (5) non null,
consegna_address varchar (50) non null,
Importo int (11),
Key Foreign (Customer_id) Reference Clienti (ID))
Motore = innodB;
Inserire nei valori dei clienti
(Null, "Johnathan", "18477366643", "[email protected] '),
(Null, "Musfiqur Rahman", "17839394985", "[email protected] '),
(Null, "Jimmy", "14993774655", "[email protected] ');
Inserire nel valore degli ordini
("1937747", "2020-01-02", 1, "nuovo lavoro", 1000),
("8633664", "2020-02-12", 3, "Texas", 1500),
("4562777", "2020-02-05", 1, "California", 800),
("3434959", "2020-03-01", 2, "Nuovo lavoro", 900),
("7887775", "2020-03-17", 3, "Texas", 400);

Esegui la seguente dichiarazione per visualizzare l'elenco dei record corrente di clienti tavolo.

Seleziona * dai clienti;

Esegui la seguente dichiarazione per visualizzare l'elenco dei record corrente di ordini tavolo.

Seleziona * dagli ordini;

Uso della semplice dichiarazione di spiegazione:

La seguente istruzione SQL restituirà la parola chiave dell'istruzione spiega di una semplice query selezionata che recupera tutti i record dalla tabella dei clienti.

Spiega Seleziona * dai clienti \ g;

Il seguente output apparirà dopo aver eseguito l'istruzione. È una query a tavola singola e nessuna clausola speciale come join, unione, ecc. sono usati nella query. Per questo, il valore di Select_Type È SEMPLICE. La tabella dei clienti contiene solo tre record, ecco perché il valore di file è 3. Il valore del filtrato è al 100% perché tutti i record della tabella vengono recuperati.

Utilizzo di spiega in query selezionata con join:

La seguente dichiarazione di spiegazione viene applicata in una query selezionata di due tabelle con la clausola di join e una condizione dove.

Spiega i clienti selezionati.Nome, ordini.order_date, ordini.quantità
Dai clienti
Unisciti agli ordini (clienti.id = ordini.identificativo del cliente)
Dove i clienti.name = 'Johnathan' \ G

Il seguente output apparirà dopo aver eseguito l'istruzione. Qui, Select_Type è semplice per entrambe le tabelle. Due tabelle sono correlate dalla relazione da uno a molti. La chiave primaria Di clienti La tabella viene utilizzata come una chiave straniera Di ordini tavolo. Per questo, il valore di possibile_keys Per la seconda riga è identificativo del cliente. Il valore filtrato è 33% per clienti tavolo perché 'Johnathan' è la prima voce di questa tabella e non è necessario cercare di più. Il valore filtrato di ordini La tabella è 100% A causa di tutti i valori di ordini Tabella richiesta per verificare per recuperare i dati.

C'è un avvertimento nell'output dell'istruzione sopra. La seguente dichiarazione viene utilizzata per vedere la query eseguita dopo aver apportato qualsiasi modifica da parte dell'ottimizzatore di query o verificare il motivo dell'errore in caso di errore dopo aver eseguito la query.

Mostra gli avvertimenti \ g

Non ci sono errori nella query. L'output mostra la query modificata che viene eseguita.

Utilizzo di Spiega per scoprire l'errore della query selezionata:

La query selezionata utilizzata nella seguente istruzione spiega contiene un errore. Il formato della data che è supportato da MySQL è 'YYYY-MM-DD'. Ma nella condizione WHERE di questa domanda, il valore della data è dato come 'Dd-mm-yyyy' Questo è sbagliato.

Spiega i clienti selezionati.Nome, ordini.order_date, ordini.quantità
Dai clienti
Unisciti agli ordini (clienti.id = ordini.identificativo del cliente)
Dove ordini.order_date = '10 -10-2020 '\ g

Il seguente output verrà visualizzato dopo aver eseguito l'istruzione. Mostrerà due avvertimenti. Uno è il valore predefinito spiegato nell'esempio precedente e un altro è per l'errore della data menzionato in precedenza.

Esegui l'istruzione per vedere l'errore.

Mostra gli avvertimenti \ g

L'output mostra chiaramente l'errore con un messaggio di errore e un nome di colonna.

Utilizzare la spiegazione in una query selezionata con tutto l'operatore:

Union All Operator viene utilizzato nella query Seleziona per recuperare tutti i valori della colonna corrispondente con i duplicati dalle tabelle correlate. La seguente dichiarazione visualizzerà l'output di spiegazione dell'applicazione dell'Unione tutto tra clienti E ordini tavoli.

Spiega Seleziona ID come ID
Dai clienti
Unione tutto
Seleziona customer_id come ID
Dagli ordini \ g

Il seguente output apparirà dopo aver eseguito l'istruzione. Qui, il valore di Select_Type È UNIONE per la seconda riga dell'output e il valore di Extra è l'indice.

Conclusione:

In questo articolo sono mostrati usi molto semplici dell'istruzione. Ma questa affermazione può essere utilizzata per risolvere vari problemi di database complicati e ottimizzare il database per prestazioni migliori.