Rumah  >  Artikel  >  pangkalan data  >  log lambat pertanyaan mysql

log lambat pertanyaan mysql

WBOY
WBOYasal
2023-05-14 10:05:375114semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan dengan prestasi yang baik dan berskala dalam pemprosesan data berskala besar adalah salah satu operasi yang paling kerap digunakan. Walau bagaimanapun, apabila memproses sejumlah besar data, pertanyaan mungkin berjalan perlahan atas pelbagai sebab, menjejaskan prestasi sistem Dalam kes ini, anda perlu menggunakan log pertanyaan lambat MySQL untuk mengenal pasti dan mengoptimumkan isu prestasi pertanyaan. Artikel ini akan memperkenalkan secara terperinci pengetahuan asas dan aplikasi pertanyaan log lambat MySQL.

1. Apakah itu MySQL Query Slow Log

MySQL Query Slow Log ialah alat analisis prestasi MySQL sendiri, digunakan untuk merekod permintaan pertanyaan yang melebihi ambang masa yang ditetapkan. Log lambat pertanyaan merekodkan pelbagai penunjuk prestasi setiap pertanyaan, termasuk masa yang diperlukan, bilangan pelaksanaan, rancangan pelaksanaan, dsb. Melalui metrik ini, pembangun boleh mengenal pasti pertanyaan yang perlu dioptimumkan untuk kecekapan dan mengambil tindakan yang sewajarnya.

Secara amnya, log lambat pertanyaan MySQL tidak didayakan secara lalai dan mesti dikonfigurasikan secara manual untuk mendayakannya. Dalam fail konfigurasi MySQL (my.cnf), anda boleh menetapkan parameter fail konfigurasi untuk membolehkan log lambat pertanyaan. Berikut ialah contoh konfigurasi untuk menanyakan log perlahan:

slow_query_log = 1

slow_query_log_file = /var/log/mysql/mysql-slow.log

log_queries_not_using_indexes

long_query_time = 2

Antaranya, parameter slow_query_log digunakan untuk mendayakan log pertanyaan perlahan, parameter slow_query_log_file menentukan lokasi fail log pertanyaan lambat, parameter log_queries_not_using_indexes digunakan untuk log unused maklumat indeks pertanyaan perlahan, dan parameter long_query_time Digunakan untuk menentukan tamat masa pertanyaan, dalam beberapa saat.

2. Cara mendayakan log pertanyaan lambat MySQL

Dalam versi MySQL 5.7 dan lebih tinggi, log lambat pertanyaan MySQL didayakan secara lalai. Untuk versi MySQL yang lebih lama, seperti MySQL 5.6 atau 5.5, konfigurasi manual diperlukan untuk mendayakan fungsi log lambat pertanyaan. Berikut ialah langkah terperinci untuk mendayakan log lambat pertanyaan MySQL:

  1. Buka fail konfigurasi MySQL

Dalam sistem Linux, fail konfigurasi lalai untuk MySQL terletak di / etc/my.cnf . Dalam sistem Windows, fail konfigurasi biasanya terletak dalam C:Program FilesMySQLMySQL Servermy.ini atau C:ProgramDataMySQLMySQL Servermy.ini. Buka fail dengan editor kegemaran anda.

  1. Dayakan log lambat pertanyaan

Cari baris berikut dalam fail konfigurasi:

slow_query_log = 0

Komen keluar baris Simbol # dialih keluar dan nilai ditukar kepada 1.

slow_query_log = 1

  1. Nyatakan laluan fail log perlahan

Cari baris berikut:

slow_query_log_file = /var/log/ mysql /mysql-slow.log

Alih keluar simbol ulasan # daripada baris ini dan tukar laluan fail ke laluan yang anda mahu.

slow_query_log_file = /var/log/mysql/mysql-slow.log

  1. Konfigurasikan tamat masa pertanyaan

Cari baris berikut:

long_query_time = 10

Alih keluar simbol ulasan # daripada baris ini dan tukar nilai kepada ambang tamat masa pertanyaan yang anda inginkan dalam beberapa saat.

long_query_time = 2

  1. Konfigurasikan suis untuk mengindeks maklumat yang tidak digunakan

Cari baris berikut:

  • log_queries_not_using_indexes = 0

Alih keluar simbol ulasan # daripada baris ini dan tukar nilai kepada 1 untuk mendayakan indeks pertanyaan perlahan yang tidak digunakan dalam operasi pembalakan.

log_queries_not_using_indexes = 1

  1. Simpan dan tutup fail konfigurasi

Semak sama ada fail konfigurasi telah disimpan dan tutup fail.

  1. Mulakan semula perkhidmatan MySQL

Gunakan arahan berikut untuk memulakan semula perkhidmatan MySQL:

sudo systemctl restart mysqld

3. Bagaimana untuk melihat pertanyaan MySQL Log Perlahan

Sebaik sahaja anda telah mendayakan log lambat pertanyaan MySQL, log lambat pertanyaan akan merekod maklumat pertanyaan secara automatik dan menyimpannya dalam fail log lambat pertanyaan yang ditentukan. Anda boleh menggunakan arahan berikut untuk melihat log pertanyaan perlahan:

sudo tail -n 100 /var/log/mysql/mysql-slow.log

Gunakan arahan ini untuk memaparkan 100 terkini log pertanyaan lambat Rekod. Anda juga boleh menukar bilangan baris yang dipaparkan mengikut keinginan anda. Dalam output, masa yang diambil untuk melaksanakan pertanyaan perlahan dipaparkan, bersama-sama dengan semua jadual dan subkueri yang terlibat dalam pertanyaan.

Jika anda perlu menanyakan log perlahan mengikut penapisan tarikh, anda boleh menggunakan grep dan awk untuk menapis log di Linux, seperti ditunjukkan di bawah:

grep "21-Jun-2022" /var /log/ mysql/mysql-slow.log |. awk '{print substr($2,0,length($2)-1)" "$3$4" "$5}' | 2022 6 Semua cap masa yang mengandungi log pertanyaan perlahan pada 21 haribulan.

4. Cara menganalisis dan mengoptimumkan log pertanyaan lambat MySQL

Sebaik sahaja anda telah mengumpulkan log lambat pertanyaan MySQL yang mencukupi, anda boleh menganalisisnya dan mengetahui pertanyaan yang perlu dioptimumkan. Berikut ialah beberapa amalan terbaik untuk menganalisis dan mengoptimumkan prestasi pertanyaan:

Menghuraikan log pertanyaan perlahan dengan pt-query-digest
  1. pt-query-digest ialah perisian sumber Terbuka yang boleh membantu anda menganalisis log lambat pertanyaan MySQL dan mengoptimumkan masalah yang timbul di dalamnya. Berikut ialah langkah-langkah untuk memasang dan menggunakan pt-query-digest:

Pasang Percona Toolkit
  • Pada CentOS 7, anda boleh memasangnya menggunakan arahan berikut.

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

yum install percona-toolkit

  • Menghuraikan log pertanyaan perlahan

Anda boleh menggunakan arahan berikut untuk menggunakan pt-query-digest untuk menghuraikan log pertanyaan perlahan.

pt-query-digest /var/log/mysql/mysql-slow.log > slow-query-analysis.out

  • Analisis log lambat pertanyaan

pt-query-digest akan memberikan anda laporan analisis komprehensif tentang log lambat pertanyaan. Anda boleh mencari pertanyaan yang paling kerap berlaku dan mempunyai tamat masa paling lama dan mengenal pasti pertanyaan yang memerlukan pengoptimuman.

  1. Gunakan medan indeks

Log lambat pertanyaan MySQL merekodkan semua pertanyaan yang gagal menggunakan indeks Anda boleh menggunakan maklumat ini untuk menentukan pertanyaan yang tidak menggunakan yang sesuai indeks medan untuk mempercepatkan pertanyaan. Menambah indeks dalam MySQL boleh mengoptimumkan prestasi pertanyaan. Walau bagaimanapun, perlu diambil perhatian bahawa penambahan terlalu banyak indeks boleh menyebabkan prestasi pertanyaan menurun kerana ia boleh meningkatkan overhed permintaan pertanyaan dan operasi kemas kini.

  1. Optimumkan pernyataan pertanyaan

Log pertanyaan lambat boleh memberitahu anda pertanyaan mana yang perlu dioptimumkan. Jika masa pelaksanaan melebihi ambang yang ditetapkan, pertanyaan akan direkodkan dalam fail log. Anda boleh menyemak pernyataan pertanyaan dan cuba menggunakan pernyataan pertanyaan yang berbeza untuk mengoptimumkan kelajuan pelaksanaan.

  1. Menggunakan mekanisme caching

Mekanisme caching boleh meningkatkan kelajuan pertanyaan dengan ketara. Jika keputusan pertanyaan sudah wujud dalam cache, hasilnya boleh dikembalikan terus daripada cache, mengelakkan overhed melaksanakan pertanyaan. Mekanisme caching boleh dilaksanakan menggunakan penyedia cache seperti Redis dan Memcached.

  1. Laraskan parameter pelayan MySQL

Dalam pelayan MySQL, anda boleh mengoptimumkan prestasi keseluruhan pangkalan data dengan melaraskan pelbagai parameter. Parameter ini termasuk saiz cache MySQL, had sambungan, tamat masa pertanyaan, dsb. Dengan melaraskan parameter ini, prestasi perkhidmatan pangkalan data boleh dioptimumkan untuk pertanyaan tertentu.

Ringkasan

MySQL Query Slow Log ialah alat yang sangat berguna yang boleh membantu anda mengenal pasti dan menyelesaikan isu prestasi pertanyaan yang perlahan. Alat ini mudah dimulakan dan disesuaikan, dan maklumat yang dilog boleh membantu anda menganalisis prestasi pertanyaan dan menentukan pertanyaan yang memerlukan pengoptimuman. Mengikuti amalan terbaik dan melaksanakan pengoptimuman yang sesuai boleh meningkatkan prestasi keseluruhan pelayan MySQL anda dan membantu anda mengurus dan mengekalkan pangkalan data yang besar dengan lebih baik.

Atas ialah kandungan terperinci log lambat pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:mysql mac terlupa kata laluanArtikel seterusnya:mysql mac terlupa kata laluan