Cuprins
Unele interogări consumă mai multe resurse decât altele. De exemplu, interogările care returnează seturi de rezultate mari și cele care conțin clauze WHERE care nu sunt unice sunt întotdeauna consumatoare de resurse. Nici un grad de inteligență al bazelor de date sql nu face o treabă bună de optimizare a interogărilor și nici nu pot elimina costul resurselor acestor constructe în comparație cu o interogare mai puțin complexă.Putem obține aceleași rezultate scriind interogări SQL diferite. Dar utilizarea celei mai bune interogări este importantă atunci când se ia în considerare performanța. Reglarea SQL este procesul de asigurare a faptului că instrucțiunile SQL generate de o aplicație vor fi executate în cel mai scurt timp posibil. Aceste interogări SQL pot fi optimizate pentru o performanță mai bună.
Tehnici de optimizare sau reglare SQL
În continuare vom vedea câteva tehnici de optimizare
CAZUL 1: Interogarea SQL devine mai rapidă dacă utilizați numele câmpurilor decât * ca interogare a tuturor câmpurilor din tabel
SELECT * DE LA clienți
Este mai optim să scrieți interogarea în acest fel
SELECT ID, nume, adresă DE la clienți
CAZUL 2: Clauza HAVING este utilizată pentru a filtra rândurile după ce toate rândurile au fost selectate.
SELECȚIONEAZĂ subiectul, numărați (studenții) număr_studenți DE LA înscriși WHERE subiect = 'Chimie' ȘI subiect = 'Istorie' GRUPĂ PE SUBIECT;
Este mai optim să scrieți interogarea în acest fel
SELECTmateria, numărați (studenți) number_alumnos DIN ÎNREGISTRATI GRUP PE SUBIECTE AVÂND subiect = 'Chimie' ȘI subiect = 'Istorie'
CAZUL 3: Uneori este posibil să avem mai multe subinterogări în interogarea principală. Să vedem în exemplul următor cum să minimizați blocul de subinterogare din interogarea dvs.
Consultăm cel mai vechi și cel mai bine plătit angajat.
SELECTAți numele DE LA angajați UNDE salariu = (SELECȚIAȚI MAX (salariul) DE LA angajați) ȘI vârsta = (SELECAȚI MAX (vârsta) DE LA angajați) ȘI categoria = 'Electronică';
Este mai optim să scrieți interogarea în felul următor
SELECTAți numele DE LA angajați UNDE (salariu, vârstă) = (SELECȚIAȚI MAX (salariu), MAX (vârstă) DE LA angajați) ȘI item = „Electronică”;
CAZUL 4: Folosind operatorul EXISTS, IN și tabelul se alătură în mod corespunzător în interogarea dvs. este important, deoarece acestea sunt tranzacții care încetinesc accesul la date.
În general, cea mai lentă performanță în interogarea Canda.
IN este eficient atunci când majoritatea criteriilor de filtrare se află în subinterogare.
Exist este eficient atunci când majoritatea criteriilor de filtrare se află în interogarea principală.
Să vedem câteva exemple
Selectați * din produsul p unde product_id IN (selectați product_id din comenzi)
Este mai optim să o scrieți după cum urmează
Selectați * din produsul unde EXISTĂ (selectați * din comenzi în care comenzi.product_id = product.product_id)
Utilizare exista in loc de DISTINCT
Exemplu vedeți ce categorii au cărți disponibile
SELECT DISTINCT categories.id, categories.categories DIN categorii, cărți WHERE categories.id = books.idcategory;
Este mai optim să scrieți interogarea după cum urmează
SELECT DISTINCT categories.id, categories.categories DIN categorii WHERE EXISTS (SELECȚIONEAZĂ „X” DIN cărți WHERE books.idcategory = categories.id);
Acestea sunt câteva sfaturi care vor economisi resurse la executarea interogărilor SQL și, astfel, au și o aplicație cu răspunsuri mai rapide.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv