Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan log pertanyaan lambat MySQL untuk mengoptimumkan prestasi
Dengan peningkatan jumlah data dan kerumitan aplikasi, prestasi pangkalan data telah menjadi isu yang semakin penting. Sebagai sistem pengurusan pangkalan data hubungan yang popular, MySQL juga menyediakan banyak alat dan kaedah untuk mengoptimumkan prestasi. Antaranya, menggunakan log pertanyaan perlahan untuk mengoptimumkan prestasi MySQL adalah kaedah yang sangat praktikal. Artikel ini akan memperkenalkan cara menggunakan log pertanyaan lambat MySQL untuk mengoptimumkan prestasi.
1. Apakah log pertanyaan lambat
Log pertanyaan perlahan ialah mekanisme pengelogan dalam MySQL. Ia merekodkan pernyataan pertanyaan yang masa pelaksanaannya melebihi ambang tertentu. Dalam fail konfigurasi (my.cnf) pelayan MySQL, anda boleh menetapkan parameter yang berkaitan dengan log pertanyaan perlahan, seperti ambang pertanyaan perlahan, lokasi dan saiz fail log, dsb. Secara lalai, log pertanyaan perlahan dimatikan dan perlu dihidupkan secara manual.
2. Hidupkan log pertanyaan perlahan
Sangat mudah untuk menghidupkan log pertanyaan perlahan pada pelayan MySQL Hanya tambahkan konfigurasi berikut pada fail my.cnf:
slow_query_log = on
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 1
Antaranya, slow_query_log digunakan untuk mendayakan atau melumpuhkan log pertanyaan perlahan , dan slow_query_log_file digunakan untuk menentukan fail log pertanyaan lambat dan nama, long_query_time digunakan untuk menentukan ambang pertanyaan perlahan, dalam beberapa saat.
Selepas konfigurasi selesai, mulakan semula pelayan MySQL untuk membuat konfigurasi berkuat kuasa, dan kemudian mula merekodkan log pertanyaan perlahan.
3. Analisis log pertanyaan perlahan
Log pertanyaan perlahan direkodkan dalam fail log yang ditentukan Anda boleh menggunakan editor teks untuk membuka fail untuk dilihat. Walau bagaimanapun, menganalisis fail log secara manual boleh membosankan dan memakan masa. Oleh itu, kami memerlukan alat untuk menganalisis log pertanyaan perlahan.
MySQL disertakan dengan alat - mysqldumpslow, yang boleh membantu kami menganalisis log pertanyaan perlahan dan menghasilkan keputusan statistik. Penggunaannya adalah seperti berikut:
$ mysqldumpslow /var/log/mysql/slow-query.log
Selepas melaksanakan arahan di atas, keputusan mengikut pernyataan pertanyaan akan dikeluarkan. Contohnya:
Kiraan: 5 Masa=1.00s (5s) Kunci=0.00s (0s) Baris=5.0 (25), root[root]@localhost
PILIH * DARI pesanan DI MANA tarikh_perintah ANTARA ' 2021 -01-01' DAN '2021-01-31'
PESANAN OLEH customer_id, order_date;
Dalam hasil output, anda boleh melihat bilangan pelaksanaan pernyataan pertanyaan, jumlah masa pelaksanaan, purata masa pelaksanaan, dsb. maklumat.
4. Optimumkan pertanyaan perlahan
Dengan menganalisis log pertanyaan perlahan, kami boleh mengetahui pernyataan pertanyaan dengan masa pelaksanaan yang paling lama, dan kemudian mengoptimumkannya untuk meningkatkan prestasi pangkalan data. Berikut ialah beberapa kaedah pengoptimuman yang biasa digunakan:
1 Tambah indeks
Menambah indeks pada medan yang terlibat dalam pernyataan pertanyaan boleh mempercepatkan pertanyaan. Walau bagaimanapun, anda perlu berhati-hati untuk tidak menyalahgunakan indeks Terlalu banyak indeks akan menjejaskan prestasi operasi sisipan dan kemas kini.
2. Optimumkan pernyataan pertanyaan
Mengoptimumkan pernyataan pertanyaan juga merupakan cara penting untuk meningkatkan prestasi pangkalan data. Kaedah pengoptimuman mudah termasuk menggunakan operator yang sesuai, menggunakan subkueri dan bukannya pertanyaan berkaitan, dsb. Kaedah pengoptimuman yang lebih kompleks perlu dijalankan berdasarkan kes demi kes.
3. Cache hasil pertanyaan yang kerap digunakan
Untuk beberapa hasil pertanyaan yang kerap digunakan, anda boleh cache mereka dalam memori untuk mengelakkan pertanyaan dan pengiraan berulang, dengan itu meningkatkan kelajuan pertanyaan.
4. Asingkan operasi pertanyaan dan kemas kini
Prestasi operasi pertanyaan dan kemas kini sangat berbeza, jadi apabila mereka bentuk pangkalan data, anda harus cuba mengelakkan penggunaan bercampur mereka dalam jadual yang berbeza, atau gunakan teknik seperti replikasi tuan-hamba untuk memisahkan operasi baca dan tulis.
5. Ringkasan
Log pertanyaan lambat MySQL ialah alat pengoptimuman prestasi yang sangat praktikal. Ia boleh membantu kami mencari pernyataan pertanyaan yang mengambil masa yang lama untuk dilaksanakan, dengan itu mengoptimumkan prestasi pangkalan data. Artikel ini memperkenalkan cara mendayakan log pertanyaan perlahan, menganalisis log pertanyaan perlahan dan mengoptimumkan pertanyaan perlahan. Saya harap ia akan membantu kebanyakan pengguna MySQL.
Atas ialah kandungan terperinci Cara menggunakan log pertanyaan lambat MySQL untuk mengoptimumkan prestasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!