Rumah  >  Artikel  >  pangkalan data  >  Apakah log pertanyaan lambat dan cadangan pengoptimuman untuk mempelajari MySQL?

Apakah log pertanyaan lambat dan cadangan pengoptimuman untuk mempelajari MySQL?

WBOY
WBOYasal
2023-07-30 17:04:531277semak imbas

Apakah log pertanyaan lambat dan cadangan pengoptimuman untuk mempelajari MySQL?

Pertanyaan perlahan merujuk kepada pernyataan pertanyaan yang mengambil masa yang lama untuk dilaksanakan dalam pangkalan data MySQL, yang mungkin menyebabkan prestasi sistem menurun. Untuk menemui dan menyelesaikan masalah pertanyaan perlahan tepat pada masanya, MySQL menyediakan alat log pertanyaan perlahan untuk membantu pembangun mengoptimumkan prestasi dengan merekodkan pernyataan pertanyaan perlahan, masa pelaksanaan dan maklumat lain yang berkaitan.

1. Dayakan log pertanyaan perlahan
Untuk menggunakan fungsi log pertanyaan perlahan, anda perlu membuat tetapan yang sepadan dalam fail konfigurasi MySQL. Dalam fail konfigurasi MySQL my.cnf atau my.ini, cari bahagian [mysqld] dan tambah atau ubah suai parameter berikut:

slow_query_log = 1 // Dayakan log pertanyaan perlahan, nilai lalai ialah 0
slow_query_log_file = /var/ log /mysql/slow-query.log // Laluan fail log pertanyaan perlahan
long_query_time = 1 // Tentukan pertanyaan yang mengambil masa lebih daripada beberapa saat untuk dilaksanakan sebagai pertanyaan perlahan Nilai lalai ialah 10 saat

Simpan konfigurasi fail dan mulakan semula perkhidmatan MySQL, pertanyaan perlahan Log akan mula merakam.

2. Analisa log pertanyaan perlahan
Log pertanyaan lambat merekodkan maklumat terperinci pernyataan pertanyaan yang masa pelaksanaannya melebihi takrifan long_query_time. Berikut ialah contoh log pertanyaan perlahan:

Masa: 2020-01-01T00:00:05.123456Z

User@Host: root[root] @ localhost [] Id: 1

Query_time: 3.0001time: 3.00001 Rows_sent : 1 Rows_examined: 1000

SET timestamp=1577840405;
SELECT * FROM user WHERE age > 30;

Dalam log, Query_time mewakili masa pelaksanaan pertanyaan, Rows_sentlock mewakili masa pelaksanaan pertanyaan, Lock_sent mewakili masa. klien, dan Rows_examined mewakili Bilangan baris yang ditanya.

3. Petua Cadangan Pengoptimuman
Selepas kami menganalisis log pertanyaan yang perlahan, kami boleh membuat pengoptimuman yang sepadan berdasarkan pernyataan pertanyaan dan kesesakan prestasi tertentu. Berikut ialah beberapa petua pengoptimuman yang biasa digunakan:

  1. Pastikan indeks yang betul: Percepatkan operasi pertanyaan dengan mencipta indeks yang sesuai. Anda boleh menggunakan pernyataan EXPLAIN untuk melihat rancangan pelaksanaan pertanyaan dan menentukan sama ada indeks digunakan. . Anda boleh mengurangkan set hasil pertanyaan dengan menambahkan indeks, mengoptimumkan keadaan pertanyaan atau menggunakan halaman.
Gunakan jenis data yang sesuai: Pilih jenis data yang sesuai dan elakkan menggunakan jenis data yang terlalu besar atau terlalu kecil. Jenis data yang merupakan ruang simpanan sisa yang terlalu besar, manakala jenis data yang terlalu kecil boleh menyebabkan limpahan data atau pemotongan.


Kurangkan jumlah penghantaran data: Cuba kurangkan jumlah penghantaran data dalam hasil pertanyaan, pilih hanya medan yang diperlukan dan elakkan daripada mengembalikan data yang tidak diperlukan.

    Operasi kelompok: Gabungkan berbilang operasi tunggal ke dalam operasi kelompok untuk mengurangkan bilangan sambungan pangkalan data dan penyerahan transaksi.
  1. Contoh:
  2. MASUKKAN KE DALAM pengguna (nama, umur) NILAI ('Tom', 20), ('John', 30), ('Alice', 40);
  3. Gunakan pernyataan yang disediakan: Gunakan Pernyataan prapemprosesan boleh meningkatkan prestasi pertanyaan dan keselamatan.

Contoh:
SEDIAKAN stmt DARI 'PILIH * DARI pengguna DI MANA umur > ?';

LAKSANAKAN stmt MENGGUNAKAN 30;
  1. meja berpartisyen: Untuk jadual besar, ia boleh dipartisikan mengikut petak tertentu . . PARTITION p2 NILAI KURANG DARIPADA MAXVALUE
);


Ringkasan
Mempelajari log pertanyaan lambat MySQL dan cadangan pengoptimuman adalah penting untuk meningkatkan prestasi pangkalan data. Dengan mendayakan log pertanyaan perlahan, kami boleh merekodkan pernyataan yang masa pelaksanaan pertanyaannya melebihi ambang pratetap dan melaksanakan pengoptimuman prestasi yang sepadan dengan menganalisis log pertanyaan perlahan. Penggunaan indeks yang munasabah, pengurangan volum penghantaran data, penggunaan pernyataan prapemprosesan, jadual partition dan teknik pengoptimuman lain boleh meningkatkan kecekapan pertanyaan pangkalan data dan prestasi sistem dengan ketara.

Atas ialah kandungan terperinci Apakah log pertanyaan lambat dan cadangan pengoptimuman untuk mempelajari 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