Rumah > pangkalan data > tutorial mysql > Operasi praktikal log pertanyaan lambat MySQL (analisis grafik dan teks)

Operasi praktikal log pertanyaan lambat MySQL (analisis grafik dan teks)

WBOY
Lepaskan: 2022-09-14 19:43:52
ke hadapan
2516 orang telah melayarinya

Pembelajaran yang disyorkan: tutorial video mysql

1. Gambaran Keseluruhan

Log pertanyaan lambat MySQL disediakan oleh MySQL Sejenis rekod log, yang digunakan untuk merekod pernyataan SQL yang masa tindak balasnya melebihi ambang (long_query_time, unit: saat) dalam MySQL. Secara lalai, MySQL tidak memulakan pengelogan pertanyaan yang perlahan. Artikel ini memperkenalkan secara ringkas cara mendayakan log pertanyaan perlahan dan cara menggunakan mysqldumpslow untuk menganalisis pertanyaan perlahan.

2. Tetapan log pertanyaan perlahan

1. Tetapan sementara

Dayakan log pertanyaan perlahan (tidak sah selepas dimulakan semula)

set global slow_query_log = on;
Salin selepas log masuk

Nota: Jika anda ingin mematikan log pertanyaan perlahan, anda hanya perlu melaksanakan set global slow_query_log = off;.

Titik kritikal masa pertanyaan perlahan sementara yang lebih tinggi daripada titik kritikal ini akan direkodkan dalam log pertanyaan perlahan (semula semula akan gagal)

set long_query_time = 1;
Salin selepas log masuk

Tetapkan kaedah storan pertanyaan perlahan (tidak sah selepas dimulakan semula)

set global  log_output = file;
Salin selepas log masuk

Nota: Seperti yang anda lihat, saya menetapkannya kepada fail di sini, yang bermaksud saya Log pertanyaan lambat dicerminkan melalui fail lalai kita boleh menetapkannya ke jadual atau fail.

2. Tanya status pembukaan log pertanyaan perlahan dan lokasi penyimpanan log pertanyaan perlahan

show variables like '%quer%';
Salin selepas log masuk

Perihalan parameter:

  • slow_query_log: Sama ada pertanyaan perlahan telah didayakan
  • slow_query_log_file: Laluan fail log pertanyaan perlahan
  • long_query_time : Pertanyaan yang melebihi bilangan saat akan ditulis pada log

log_queries_not_using_indexes Jika nilai ditetapkan kepada HIDUP, semua pertanyaan yang tidak menggunakan indeks akan direkodkan (dayakan ini semasa pengoptimuman prestasi, jangan dayakannya seperti biasa)

3 Lihat format storan log

show variables like 'log_output';
Salin selepas log masuk

4

Ubah suai my.cnf

Tambahkan parameter berikut pada bahagian [mysqld] dalam fail konfigurasi my.cnf (biasanya /etc/my.cnf).

[mysqld]slow_query_log= 1slow_query_log_file= /var/lib/mysql/slow-query.log # 若没有指定,默认名字为hostname_slow.loglong_query_time= 1log_queries_not_using_indexes= 1
Salin selepas log masuk

Antaranya, slow_query_log = 1, bermaksud untuk mendayakan pertanyaan perlahan, 0 bermaksud untuk mematikan

slow_query_log_file, nyatakan laluan log pertanyaan perlahan, MySQL perlu mempunyai kebenaran menulis untuk ini laluan

long_query_time = 1, menunjukkan bahawa masa pertanyaan >= 1 saat sebelum merekod log, lalainya ialah 10s

log_queries_not_using_indexes = 1, menunjukkan bahawa pernyataan SQL yang tidak menggunakan indeks ialah direkodkan

Mulakan semula perkhidmatan MySQL, selepas memulakan semula MySQL Anda akan melihat fail /var/lib/mysql/slow-query.log.

3. Ujian pertanyaan perlahan

Buat pertanyaan perlahan dan laksanakannya. Seperti berikut:

mysql> select sleep(1);+----------+
| sleep(1) |
+----------+
| 0 |
+----------+
1 row in set (1.00 sec)
Salin selepas log masuk

Log pertanyaan perlahan

Buka fail log pertanyaan perlahan. Anda boleh melihat bahawa pernyataan SQL bagi pertanyaan perlahan di atas direkodkan dalam log.

4. Alat analisis pertanyaan perlahan

mysqldumpslow
Salin selepas log masuk

mysqldumpslow ialah alat MySQL sendiri untuk menganalisis pertanyaan perlahan. Alat ini ialah skrip Perl.

Parameter yang biasa digunakan adalah seperti berikut:

  • -s: kaedah pengisihan, nilainya adalah seperti berikut:
  • c: Bilangan pertanyaan
  • t: Masa pertanyaan
  • l: Masa kunci
  • r: Kembalikan rekod
  • ac:purata bilangan pertanyaan
  • al:purata masa kunci
  • ar:Purata buku rekod pemulangan
  • pada: Purata masa pertanyaan
  • -t: pertanyaan atasN
  • -g :Ungkapan biasa

Dapatkan 5 pernyataan SQL yang paling kerap dilawati:

Disusun mengikut masa 5 pernyataan SQL teratas

$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log
Salin selepas log masuk

5 pernyataan SQL teratas diisih mengikut masa dan mengandungi 'suka'

$ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log
Salin selepas log masuk

五、MySQL 清理slowlog方法

SET GLOBAL slow_query_log = 'OFF';
ALTER TABLEmysql.slow_log RENAME mysql.slow_log_drop;
CREATE TABLE mysql.slow_log LIKEmysql.slow_log_drop;
SET GLOBAL slow_query_log = 'ON';
DROP TABLE mysql.slow_log_drop;
Salin selepas log masuk

推荐学习:mysql视频教程

Atas ialah kandungan terperinci Operasi praktikal log pertanyaan lambat MySQL (analisis grafik dan teks). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan