1. Apakah pertanyaan lambat?
Apabila masa yang diambil untuk MySQL melaksanakan pernyataan pertanyaan SQL melebihi ambang tertentu, pertanyaan akan ditandakan sebagai pertanyaan perlahan. Pertanyaan perlahan biasanya ditakrifkan sebagai pertanyaan yang mengambil masa lebih lama daripada satu saat, tetapi ambang ini boleh dilaraskan bergantung pada situasi.
Pertanyaan perlahan biasanya disebabkan oleh sebab berikut:
Pernyataan pertanyaan SQL itu sendiri tidak cukup dioptimumkan.
Indeks dalam pangkalan data tidak cukup lengkap.
Reka bentuk struktur fizikal pangkalan data adalah tidak munasabah.
Prestasi MySQL terjejas teruk apabila pertanyaan perlahan hadir kerana ia menyebabkan CPU pelayan pangkalan data dan penggunaan memori meningkat. Oleh itu, kita perlu mencari punca pertanyaan lambat secepat mungkin dan mengoptimumkannya.
2. Bagaimana untuk mendayakan pertanyaan perlahan?
Dalam MySQL, sangat mudah untuk mendayakan fungsi pertanyaan perlahan Kami hanya perlu menambah parameter berikut pada fail konfigurasi MySQL:
log-slow-queries = /var/log/mysql/mysql-slow.log long_query_time = 1
Antaranya, pertanyaan log-perlahan. parameter digunakan untuk menentukan pertanyaan perlahan Laluan dan nama fail fail log Parameter long_query_time digunakan untuk menentukan ambang masa pertanyaan dalam beberapa saat. Semua pertanyaan yang mengambil masa lebih daripada 1 saat akan direkodkan dalam fail log pertanyaan perlahan.
Untuk konfigurasi baharu berkuat kuasa, kami perlu memulakan semula perkhidmatan MySQL selepas menambah dua parameter ini. Dalam sistem pengendalian CentOS, kita boleh menggunakan arahan berikut untuk memulakan semula perkhidmatan MySQL:
systemctl restart mysqld
Sudah tentu, arahan ini juga mungkin berbeza-beza bergantung pada sistem, sila laraskannya mengikut situasi tertentu.
3. Bagaimana untuk menganalisis log pertanyaan perlahan?
Semakan tetap log pertanyaan lambat diperlukan untuk mengesan dan menangani masalah pertanyaan lambat Sebelum ini, log pertanyaan lambat perlu didayakan. Kami boleh menggunakan alat mysqldumpslow yang disertakan dengan MySQL untuk menganalisis log pertanyaan perlahan Alat ini menyokong pelbagai kaedah pengisihan dan boleh membantu kami mencari punca pertanyaan lambat.
Berikut ialah beberapa arahan yang biasa digunakan:
# 按查询次数从大到小排序 mysqldumpslow -s c /var/log/mysql/mysql-slow.log # 按查询时间从大到小排序 mysqldumpslow -s t /var/log/mysql/mysql-slow.log # 按查询锁定的行数从大到小排序 mysqldumpslow -s l /var/log/mysql/mysql-slow.log
Sebelum menggunakan arahan ini, kami perlu memastikan kami mempunyai kebenaran untuk mengakses fail log pertanyaan perlahan. Fail log pertanyaan perlahan biasanya disimpan di bawah laluan /var/log/mysql/mysql-slow.log.
Menganalisis log pertanyaan lambat bukanlah tugas yang mudah dan memerlukan pengalaman dan kemahiran tertentu. Biasanya, kami menganalisis log pertanyaan perlahan berdasarkan berbilang dimensi seperti masa pelaksanaan pertanyaan, bilangan pertanyaan dan bilangan baris terkunci dalam pertanyaan, untuk mencari arah untuk pengoptimuman.
4. Bagaimana untuk mengoptimumkan pertanyaan perlahan?
Selepas menganalisis log pertanyaan yang perlahan, kami perlu mencadangkan pelan pengoptimuman berdasarkan hasil analisis. Berikut ialah beberapa penyelesaian pengoptimuman biasa:
Optimumkan pernyataan pertanyaan SQL: Ubah suai pernyataan pertanyaan SQL, gunakan indeks sebanyak mungkin dan elakkan menggunakan kaedah pertanyaan seperti imbasan jadual penuh.
Optimumkan indeks: Tambah atau ubah suai indeks pada jadual dalam pangkalan data untuk menyelesaikan operasi pertanyaan dengan lebih cepat.
Optimumkan struktur fizikal: laraskan struktur fizikal pangkalan data, termasuk sub-jadual jadual, partition dan operasi lain, untuk mengurus pangkalan data dengan lebih baik.
Optimumkan caching: Gunakan teknologi caching untuk mengurangkan bilangan pertanyaan pangkalan data sebanyak mungkin, dengan itu meningkatkan kelajuan pertanyaan data.
Untuk mengoptimumkan pertanyaan perlahan, anda perlu mempertimbangkan secara menyeluruh pelbagai faktor seperti struktur fizikal dan logik pangkalan data dan pernyataan pertanyaan Ini adalah proses yang sangat kompleks. Semasa proses pengoptimuman, gangguan kepada sistem pangkalan data harus diminimumkan sambil memastikan kestabilan sistem.
Atas ialah kandungan terperinci Bagaimana untuk membolehkan pertanyaan lambat mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!