Optimizare Mysql – query-uri fara index

Optimizarea mysql a unui site este una dintre cele mai importante aspecte ale optimizarii unui site.

In cazul in care ai  un site este foarte important  sa incerci sa il optimizezi cat mai bine. Aceasta optimizare te poate scapa de o cheltuiala mai mare la un serviciu gazduire.

Eu unul personal cand incerc sa optimizez un site adaug in my.conf (configul de mysql) urmatorul cod:

[php]log-queries-not-using-indexes[/php]

Ce face setarea de mai sus? Simplu spus adauga in logurile de mysql query-urile care nu se fac pe baza unui index.

Cu alte cuvinte: pentru a gasi un rezultat intr-un tabel mysql-ul incearca fiecare inregistrare sa vada daca indeplineste conditia din query.

Astfel daca ai un query care face o interogare intr-un tabel cu 100.000 de inregistrari vei observa ca timpul si procesorul care il foloseste mysql-ul e extrem de mare in comparatie cu situatia in care query-ul are un index bun. Dar daca nu am acces la fisierul my.conf? Nimic mai simplu…

Intrebarea fireasca care vine acuma este: Cum stiu daca la un query este selectat un index corect?

Pentru aceasta exista sintaxa din mysql EXPLAIN. Astfel putem sa observam exact indexul selectat de mysql folosind o sintaxa asemanatoare:

[php]

EXPLAIN SELECT id,username FROM users WHERE id=3

[/php]

Rezultatul acestei interogari va fi un tabel cu mai multe campuri care va contine si doua denumite possible_key si key.

Aceste doua campuri iti arata de fapt posibili indexi si indexul pe care l-a ales mysql-ul sa il foloseasca.

In curand vreau sa pun la dispozitie o clasa de mysql care va poate ajuta sa faceti debuggul foarte usor si care contine si datele din acest scurt tutorial. In curand alte detalii…

Spune si tu parerea...