Blog
2010 26 Mar

5 sfaturi pentru optimizarea interogărilor MySQL

mysql

 

  1. folosirea comenzii explain
  2. utilizarea permisiuni mai puţin complexe
  3. funcţii specifice MySQL pot fi testate, folosind comanda "benchmark"
  4. optimizarea în clauzelor where
  5. utilizarea prioritatilor de interogare
  • Daca folositi declaraţii INSERT pentru a stoca mai multe rânduri cu o instrucţiune SQL.
  • Comanda Explain poate să vă ofere informatii despre ce indecsi sunt folositi in interogarea specificata şi multe alte informaţii utile care vă pot ajuta să alegeţi un index mai bun sau o interogare mai buna.

2. utilizarea permisiuni mai puţin complexe

Cu cat sun mai complexe permisiunile , cu atat aveti mai multa supraincarcare. Folosind permisiuni simple, atunci când apelati functia GRANT permite MySQL de a reduce supraincarcarea datorata verificarilor permisiunilori atunci cand clientii executa interogari.

3. funcţii specifice MySQL pot fi testate, folosind comanda "benchmark"

Daca problema ta este o expresie sau o functie specifică MySQL, puteţi efectua un test de sincronizare prin invocarea BENCHMARK () funcţie folosind programul client al mysql-ului. Sintaxa sa este BENCHMARK (loop_count, expresie). Valoarea întoarsă este întotdeauna zero, dar MySQL afiseaza aproximativ cât de mult timp ia luat functiei sa se execute

4. optimizarea în clauzelor where

  • Scoateţi paranteze inutile
  • COUNT (*) pe un singur tabel fără WHERE este preluată direct de la tabela de informatii pentru MyISAM şi tabele de memorie. Aceasta actiune se realizeaza, de asemenea, pentru orice expresie NOT NULL atunci când este utilizat un singur tabel.
  • utilizaţi opţiunea SQL_SMALL_RESULT, MySQL foloseste un tabel temporar din memorie

5. utilizarea prioritatilor de interogare

  • Folosiţi INSERT LOW_PRIORITY atunci când doriţi să dati prioritate mai mare declaraţiilor SELECT decat declaratiilor INSERT.
  • Utilizati SELECT_HIGH_PRIORITY pentru a realiza retrageri care sar peste coada de aşteptare. Asta inseamna ca, SELECT este executata, chiar dacă există un alt client în aşteptare.
scris de

Valentin Dragan Web Developer