Dedikuoti serveriai, VDS hostingas, debesų kompiuterija
Interneto vizija
Karjera El. paštas

Grįžti   Dedikuoti.lt forumas > Bendruomenės diskusijos > Pamokos > Duomenų bazių serveriai

Atsakyti
 
Temos įrankiai Ieškoti šioje temoje
  #1  
Senas 2019-03-14, 13:12
iv_vytenisg iv_vytenisg neprisijungęs
Super Moderator
 
Prisiregistravo: 2014 11
Žinutės: 70
Pagrindinis MySQL lėtų užklausų paieška



Naudojantis MySQL duomenų bazėmis galite susidurti su įvairiomis vykdomų užklausų problemomis. Kartais jos pasireikšti tik pradėjus darbą su duomenų bazių duomenimis. Daugumoje duomenų bazių sistemų, įtraukiant, bet neapsiribojant MySQL, užklausos formuluotė turi pasibaigti simboliu ";", kaip pavyzdžiui:

Kodas:
mysql> SHOW * FROM lentelės_pavadinimas;
Jeigu nepateiksite ";" simbolio užklausos pabaigoje komandinė eilutė ir toliau leis Jums pildyti užklausos tekstą spaudžiant ENTER iki tol kol nebus nurodytas pageidaujamas simbolis. Todėl užklausoje gali atsirasti nepageidaujamas tekstas.

Viena iš dažniausiai pasitaikančių problemų susijusių su duomenų bazėmis yra ilgai vykdomos užklausos. Norint sužinoti lėtos užklausos priežastį reikėtų įjungti lėtų užklausų išrašo fiksavimą. Tam atlikti atsidarykite failą mysqld.cnf, kuris yra skirtas konfigūruoti MySQL nustatymus serveryje. Šis failas standartiškai yra saugomas šioje /etc/mysql/mysql.conf.d/ direktorijoje. Norint koreguoti šį failą naudokite komandą:

Kodas:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Slinkite per failą kol pamatysite nurodytas eilutes:

Kodas:
. . .
#slow_query_log         = 1
#slow_query_log_file    = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
. . .
Šios užkomentuotos eilutės suteikia standartinius nustatymus MySQL lėtų užklausų išrašui. Žemiau aprašome kiekvienos eilutės reikšmes:

* slow-query-log - reikšmė 1 reiškia, kad lėtų užklausų fiksavimas yra įjungtas.
* slow-query-log-file - šio parametro reikšmėje nurodomas lėtų užklausų saugumo failo kelias. Šiuo atveju jis yra /var/log/mysql-slow.log faile.
* long_query_time - nurodant 2 reikšmę yra nustatoma, kad bus fisuojamos visos užklausos, kurios trunka ilgiau nei 2 sekundes.
* log_queries_not_using_indexes - šis parametras taip pat nurodo, kad būtų saugomos ir visos užklausos, kurios nesiindeksuoja.

Atkomentuokite kiekvieną eilutę pašalindami grotelių simbolį "#". Šis failas turėtų atrodyti taip:

Kodas:
. . .
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes
. . .

SVARBU:
Jeigu naudojate MySQL 8+ versiją šios eilutės nebus įtrauktos į mysqld.cnf pagal nutylėjimą. Tokiu atveju šias eilutes galite nurodyti failo apačioje:

Kodas:
. . .
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes
Įjungus lėtų užklausų išrašą turite išsaugoti ir uždaryti failą. Tada perkraukite MySQL tarnybą:

Kodas:
sudo systemctl restart mysql
Atlikus šiuos nustatymus Jūs galite peržiūrėti problemines užklausas peržiūrint lėtų užklausų failą. Galite peržiūrėti išrašą po vieną eilutę naudodami less komandą:

Kodas:
sudo less /var/log/mysql_slow.log
Kai surasite užklausą, kuri sukelia problemų, turėtumėte optimizuoti užklausas bei/arba lenteles.

MySQL papildomai įtraukia EXPLAIN formuluotę, kurioje suteikiama informacija kaip MySQL vykdo užklausas. MySQL dokumentacijoje rasite paaiškinimą kaip naudoti EXPLAIN nekorektiškų užklausų išskyrimui.
Prisegti paveikslėliai
Paspauskite paveiksliuką, jei norite padidinti

Pavadinimas:	MySQL.jpg‎
Peržiūros:	178
Dydis:	28.9 KB
ID:	433  
Atsakyti su citata
Atsakyti

Temos įrankiai Ieškoti šioje temoje
Ieškoti šioje temoje:

Detali paieška

Žinučių rašymo taisyklės
Jūs negalite kurti naujų temų
Jūs negalite rašyti žinučių
Jūs negalite įkelti failų
Jūs negalite redaguoti savo įrašų

BB kodas yra Įjungtas
Šypsenos yra Įjungtas
[IMG] kodas yra Įjungtas
HTML kodas yra Išjungtas

Greita navigacija

Panašios temos
Tema Temą sukūrė Forumas Atsakymai Paskutinė žinutė
Neįmanoma forumo paieškos funkcija naudojant mobilųjį telefoną boolve Klausimai, pastabos, pasiūlymai 1 2018-12-03 12:16
Efektyvi failų paieška serveryje iv_valentinasc Kitos aplikacijos 0 2016-05-25 11:35
Užklausų DNS duomenims pateikimas naudojant Dig, Whois, Host & Ping IV_VygandasS Informaciniai straipsniai 0 2014-01-30 16:42
MySQL 5.1.x atnaujinimas į MySQL 5.5.x CentOS 5/6 operacinės sistemos aplinkoje IV_RomanL Archyvas 3 2013-09-10 17:34


Visi laikai yra GMT +3. Šiuo metu yra 07:31.


Powered by vBulletin®
Copyright ©2000 - 2019, vBulletin Solutions, Inc.