Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membolehkan log lambat pertanyaan mysql

Bagaimana untuk membolehkan log lambat pertanyaan mysql

WBOY
WBOYke hadapan
2023-05-27 12:31:143717semak imbas

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 MySQL

Secara 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

  1. 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

  1. Cari baris berikut dalam fail konfigurasi:

  2. slow_query_log = 0

Alih keluar simbol ulasan # daripada baris dan tukar nilai kepada 1.

slow_query_log = 1

Nyatakan laluan fail log perlahan

  1. Cari baris berikut:

  2. 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

Konfigurasikan tamat masa pertanyaan

  1. Cari yang berikut Baris:

  2. 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

Konfigurasikan suis untuk mengindeks maklumat yang tidak digunakan

  1. 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

Simpan dan tutup fail konfigurasi

  1. Semak sama ada fail konfigurasi telah disimpan dan tutup fail.

Mulakan semula perkhidmatan MySQL

  1. Gunakan arahan berikut untuk memulakan semula perkhidmatan MySQL:

  2. sudo systemctl restart mysqld

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 MySQL

Selepas 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

    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:
  1. Pasang Percona Toolkit

    Pada CentOS 7, anda boleh memasangnya menggunakan perintah 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 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam