Topic: Kaip sužinoti kurios užklausos sodina mysql?

Sveiki!
Kaip sužinoti kurios užklausos svetainėje labiausiai apkrauna mysql'ą?

Re: Kaip sužinoti kurios užklausos sodina mysql?

Exploder wrote:

Sveiki!
Kaip sužinoti kurios užklausos svetainėje labiausiai apkrauna mysql'ą?

Reikia turėti tiesioginį priėjimą prie MySQL serverio. Būdų yra keletas. Vienas iš būdų yra registruoti ilgiausiai užtrunkančias užklausas, nes bendru atveju jos ir naudos daugiausia resursų (čia aišku reikia registruoti ir tų užklausų kiekius). Kitas būdas yra užklausų stebėjimas realiu laiku, tą atlikti galima tiek su programa mytop, tiek rankiniu būdų MySQL serveryje, sesijoje nustačius MySQL kintamąjį profiling=1 ir tada sesijoje pabaigoje peržiūrėti statistiką su SHOW PROFILES. Dar kitas būdas yra pačioje programoje, vesti SQL užklausų žurnalą ir tada jį analizuoti.

Re: Kaip sužinoti kurios užklausos sodina mysql?

Arba galima žiūrėti iš PHP pusės kiek užklausos vykdymas užtrunka.

http://github.com/zygis/MySql-database- … backup.php

Nuo 281 eilutės naudojama kažkada senai pasirašyta klasė, kurią truputį pasimodifikavęs gali išsivesti kokia užklausa  kiek užtruko.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Kaip sužinoti kurios užklausos sodina mysql?

O kaip serveryje sužinoti apskritai kuris failas sodina serverį?

Re: Kaip sužinoti kurios užklausos sodina mysql?

Na programavimas be jokios struktūros niekada prie gero neprivedė :)
Tokiu atveju geriau tiktų ilgų užklausų logas.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Kaip sužinoti kurios užklausos sodina mysql?

Exploder wrote:

O kaip serveryje sužinoti apskritai kuris failas sodina serverį?

A6 galiu tik pasikartoti - užsivesk SQL užklausų žurnalą, į jį rašyk, kokia užklausa, iš kokio failo, kurios eilutės, kiek laiko truko.

O jeigu konkrečiau - tai serveris yra labai plati savoka. Neaišku kai kokia OS, nei kokios teisės, nei kokia programinė įranga pas tave yra. Yra neblogų programų: http://www.mysql.com/products/enterprise/query.html

O šiaip pradžiai pasiskaityk čia:
http://dev.mysql.com/tech-resources/art … filer.html

Re: Kaip sužinoti kurios užklausos sodina mysql?

minde wrote:
Exploder wrote:

O kaip serveryje sužinoti apskritai kuris failas sodina serverį?

A6 galiu tik pasikartoti - užsivesk SQL užklausų žurnalą, į jį rašyk, kokia užklausa, iš kokio failo, kurios eilutės, kiek laiko truko.

O jeigu konkrečiau - tai serveris yra labai plati savoka. Neaišku kai kokia OS, nei kokios teisės, nei kokia programinė įranga pas tave yra. Yra neblogų programų: http://www.mysql.com/products/enterprise/query.html

O šiaip pradžiai pasiskaityk čia:
http://dev.mysql.com/tech-resources/art … filer.html

mysql> set profiling=1;

Kur čia ir kaip šį dalyką padaryti tarkim localhoste? windows,xampp.

Re: Kaip sužinoti kurios užklausos sodina mysql?

Exploder wrote:

Kur čia ir kaip šį dalyką padaryti tarkim localhoste? windows,xampp.

Vesk ten, kur vedi užklausas, kurias nori profiliuoti ir kur nori matyti rezultatą.

Re: Kaip sužinoti kurios užklausos sodina mysql?

minde wrote:
Exploder wrote:

Kur čia ir kaip šį dalyką padaryti tarkim localhoste? windows,xampp.

Vesk ten, kur vedi užklausas, kurias nori profiliuoti ir kur nori matyti rezultatą.

Ismeta klaida #1193 - Unknown system variable 'profiling'

Re: Kaip sužinoti kurios užklausos sodina mysql?

Exploder wrote:
minde wrote:
Exploder wrote:

Kur čia ir kaip šį dalyką padaryti tarkim localhoste? windows,xampp.

Vesk ten, kur vedi užklausas, kurias nori profiliuoti ir kur nori matyti rezultatą.

Ismeta klaida #1193 - Unknown system variable 'profiling'

O ką rodo parašius:

SELECT @@profiling;

Re: Kaip sužinoti kurios užklausos sodina mysql?

minde wrote:
Exploder wrote:
minde wrote:

Vesk ten, kur vedi užklausas, kurias nori profiliuoti ir kur nori matyti rezultatą.

Ismeta klaida #1193 - Unknown system variable 'profiling'

O ką rodo parašius:

SELECT @@profiling;

Klaida

SQL užklausa: 

SELECT @ @profiling ;


MySQL atsakymas: 
#1193 - Unknown system variable 'profiling'

Re: Kaip sužinoti kurios užklausos sodina mysql?

Tai tu naudoji MySQL versiją, kurioje dar nėr arba jau nėr vidinio profilerio (-;