1. Apakah log pertanyaan lambat MySQL
Log pertanyaan lambat MySQL ialah alat analisis prestasi yang disertakan dengan MySQL dan digunakan untuk merekodkan pertanyaan yang melebihi ambang masa yang ditentukan. Log pertanyaan perlahan merekodkan penunjuk prestasi yang berbeza bagi setiap pertanyaan, seperti masa yang diperlukan, bilangan pelaksanaan dan pelan pelaksanaan. Pembangun boleh menggunakan metrik ini untuk mengenal pasti pertanyaan yang memerlukan pengoptimuman untuk meningkatkan kecekapan dan mengambil tindakan yang sewajarnya.
Secara lalai, log pertanyaan lambat MySQL biasanya tidak didayakan dan memerlukan konfigurasi manual untuk mendayakannya. Menyoal log perlahan boleh didayakan dengan menetapkan parameter dalam fail konfigurasi MySQL (my.cnf). Berikut ialah contoh konfigurasi untuk menanyakan log perlahan:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
log_query_not_using_indexes . daripada indeks pertanyaan perlahan, dan parameter long_query_time Digunakan untuk menentukan tamat masa pertanyaan, dalam beberapa saat.
2. Cara mendayakan log pertanyaan perlahan MySQLSecara lalai, MySQL 5.7 dan ke atas membolehkan log pertanyaan perlahan. Konfigurasi manual diperlukan untuk membolehkan ciri log lambat pertanyaan, terutamanya untuk versi MySQL yang lebih lama seperti MySQL 5.6 atau 5.5, dsb. Berikut ialah langkah terperinci untuk mendayakan log lambat pertanyaan MySQL:
Buka fail konfigurasi MySQL
Secara lalai, fail konfigurasi MySQL ialah dalam sistem Linux Laluan masuk ialah /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.
Dayakan log perlahan pertanyaan
Cari baris berikut dalam fail konfigurasi:
Alih keluar simbol ulasan # daripada baris dan tukar nilai kepada 1.
Nyatakan laluan fail log perlahan
Cari baris berikut:
Alih keluar simbol ulasan # daripada baris ini dan tukar laluan fail ke laluan yang anda mahu.
Konfigurasikan tamat masa pertanyaan
Cari yang berikut Baris:
Alih keluar simbol ulasan # daripada baris ini dan tukar nilai kepada ambang tamat masa pertanyaan yang anda inginkan dalam beberapa saat.
Konfigurasikan suis untuk mengindeks maklumat yang tidak digunakan
Cari baris berikut:
log_queries_not_using_indexes = 0
Simpan dan tutup fail konfigurasi
Semak sama ada fail konfigurasi telah disimpan dan tutup fail.
Mulakan semula perkhidmatan MySQL
Gunakan arahan berikut untuk memulakan semula perkhidmatan MySQL:
3. Bagaimana untuk melihat log pertanyaan lambat MySQL
Sebaik sahaja anda telah mendayakan log pertanyaan lambat MySQL, log pertanyaan perlahan akan merekodkan maklumat pertanyaan dan menyimpannya secara automatik fail log pertanyaan lambat 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. Output akan merangkumi masa yang diperlukan untuk melaksanakan pertanyaan perlahan dan semua jadual dan subkueri data 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 waktu yang mengandungi log pertanyaan perlahan pada 21 haribulan.
4. Cara menganalisis dan mengoptimumkan log pertanyaan lambat MySQLSelepas mengumpul log lambat pertanyaan MySQL yang mencukupi, anda boleh menganalisisnya untuk menentukan pertanyaan yang memerlukan pengoptimuman . Berikut ialah beberapa amalan terbaik untuk menganalisis dan mengoptimumkan prestasi pertanyaan:
Menghuraikan log pertanyaan perlahan dengan pt-query-digest
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-toolkitMenghuraikan 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 pertanyaan log lambat
Gunakan pt-query-digest untuk mendapatkan laporan analisis terperinci tentang log pertanyaan perlahan. Anda boleh mencari pertanyaan yang paling kerap berlaku dan mempunyai tamat masa paling lama serta mengenal pasti pertanyaan yang memerlukan pengoptimuman.
Gunakan medan indeks
Log lambat pertanyaan MySQL merekodkan semua pertanyaan yang tidak berjaya menggunakan indeks Anda boleh menggunakan maklumat ini untuk menentukan pertanyaan manakah yang tidak menggunakan indeks medan yang sesuai untuk mempercepatkan pertanyaan. Menambah indeks dalam MySQL boleh mengoptimumkan prestasi pertanyaan. Adalah penting untuk ambil perhatian bahawa penambahan terlalu banyak indeks boleh mengurangkan prestasi pertanyaan kerana ia boleh meningkatkan kos permintaan pertanyaan dan operasi kemas kini.
Optimumkan pernyataan pertanyaan
Log pertanyaan lambat boleh memberitahu anda pertanyaan 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.
Menggunakan mekanisme caching
Mekanisme caching boleh meningkatkan kelajuan pertanyaan. Jika keputusan pertanyaan sudah disimpan dalam cache, anda boleh mengelakkan pelaksanaan pertanyaan dan overhed sumber dan mengembalikan hasilnya secara langsung. Mekanisme caching boleh dilaksanakan dengan menggunakan penyedia cache seperti Redis dan Memcached.
Laraskan parameter pelayan MySQL
Prestasi pelayan MySQL boleh dioptimumkan dengan melaraskan pelbagai parameter untuk mengoptimumkan keseluruhan pangkalan data. 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.
Atas ialah kandungan terperinci Bagaimana untuk membolehkan log lambat pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!