Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk meningkatkan prestasi MySQL dengan Penganalisis Masa Pertanyaan

Bagaimana untuk meningkatkan prestasi MySQL dengan Penganalisis Masa Pertanyaan

王林
王林asal
2023-05-11 09:25:551328semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas Oleh kerana prestasi tinggi, kebolehskalaan dan sifat sumber terbuka, ia telah menjadi pilihan pertama untuk banyak perusahaan dan individu. Walau bagaimanapun, apabila jumlah data terus meningkat dan kerumitan data terus meningkat, masalah prestasi MySQL mula muncul.

Salah satu isu prestasi penting ialah masa pertanyaan. Masa pertanyaan merujuk kepada masa yang diperlukan untuk pertanyaan MySQL. Lebih pendek masa pertanyaan, lebih tinggi prestasi MySQL dan keupayaan untuk mengendalikan lebih banyak permintaan pertanyaan. Untuk menangani masalah ini, kami boleh meningkatkan prestasi MySQL melalui penganalisis masa pertanyaan.

Apakah itu Penganalisis Masa Pertanyaan?
Penganalisis masa pertanyaan ialah alat analisis prestasi yang disediakan oleh MySQL, yang boleh membantu pengguna menganalisis masa pelaksanaan pernyataan pertanyaan SQL, mencari pertanyaan dengan masa pelaksanaan yang panjang dan kemudian mengoptimumkan pertanyaan yang sepadan. Penganalisis masa pertanyaan terutamanya menyediakan dua kaedah analisis:

  1. Terangkan kaedah: Apabila melaksanakan kaedah ini, MySQL akan mensimulasikan pelaksanaan pernyataan pertanyaan dan mengeluarkan pelan pelaksanaan yang berkaitan, termasuk jadual, indeks yang terlibat dalam pertanyaan, Bilangan baris yang diimbas, kaedah pengisihan, dsb. Mengikut pelan pelaksanaan, kecekapan pelaksanaan pernyataan pertanyaan SQL boleh dinilai dan kemungkinan masalah boleh ditemui, seperti terlalu banyak imbasan jadual, kekurangan indeks, dsb.
  2. Kaedah pemprofilan: Apabila melaksanakan kaedah ini, MySQL akan merekodkan proses pelaksanaan pernyataan pertanyaan SQL secara terperinci, termasuk masa pelaksanaan, bilangan baris yang diimbas, kaedah pengisihan, penggunaan indeks, dsb. Pengguna boleh mengetahui kesesakan prestasi berdasarkan data yang direkodkan dan mengoptimumkan pertanyaan yang sepadan.

Bagaimana untuk menggunakan Penganalisis Masa Pertanyaan untuk meningkatkan prestasi MySQL?
Berikut menerangkan cara menggunakan penganalisis masa pertanyaan untuk meningkatkan prestasi MySQL berdasarkan dua kaedah penganalisis masa pertanyaan.

  1. Terangkan kaedah
    (1) Gunakan Explain untuk menganalisis pelan pelaksanaan pernyataan pertanyaan SQL
    Dalam MySQL, anda boleh menggunakan kata kunci Explain untuk menanyakan rancangan pelaksanaan pertanyaan SQL pernyataan, khususnya Formatnya adalah seperti berikut:

Terangkan pilih * dari jadual di mana id=1;

Melaksanakan arahan di atas akan mengeluarkan pelan pelaksanaan pertanyaan semasa, contohnya :

explain select * from table where id=1;
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE table NULL ref PRIMARY PRIMARY 4 const 1 100.0 Using index

Antaranya, id mewakili nombor urutan setiap operasi dalam pelan pelaksanaan; indeks yang boleh digunakan; kunci mewakili akhir Indeks kunci_len mewakili panjang indeks mewakili lajur yang digunakan dalam indeks mewakili anggaran bilangan baris dalam hasil pertanyaan; hasil pertanyaan; Tambahan mewakili maklumat lain yang berkaitan.

Berdasarkan kandungan output di atas, anda boleh menilai kecekapan pelaksanaan pernyataan pertanyaan SQL dan mengenal pasti masalah yang mungkin berlaku, seperti terlalu banyak imbasan jadual, kekurangan indeks, dsb.

(2) Gunakan pernyataan pengoptimuman indeks
Penganalisis masa pertanyaan berdasarkan kaedah Terangkan Anda juga boleh menggunakan pernyataan pengoptimuman indeks untuk mengoptimumkan pelan pelaksanaan pernyataan pertanyaan SQL. Format khusus adalah seperti berikut . medan id jadual adalah Tambah indeks untuk membuat pernyataan pertanyaan mencari rekod yang memenuhi syarat dengan lebih cepat semasa membuat pertanyaan.

Kaedah pemprofilan

(1) Hidupkan fungsi Pemprofilan

Dengan menetapkan parameter pelayan MYSQL, fungsi Pemprofilan boleh dihidupkan. Operasi khusus adalah seperti berikut:

Tetapkan kaedah storan fungsi Pemprofilan

Dalam fail konfigurasi MYSQL, tambah kandungan berikut:

  1. [mysqld]

    Enable none Ia akan menggesa bahawa ia tidak didayakan apabila SHOW PROFIL
  2. Hanya apabila eva, snapshot atau semua didayakan, anda boleh melihat pernyataan SQL yang dilaksanakan apabila SHOW PROFILES
  3. eva: ​​​​Rekodkan maklumat SQL pada akhir permintaan: Catatkan maklumat SQL dengan kerap: Rekod maklumat SQL pada bila-bila masa

log: Simpan log SQL dalam fail log ralat lalai; /mysql/var/data/mylog.log: Simpan log SQL dalam fail yang ditentukan

profiling=eva

profiling_history_size=20

Kod di atas menunjukkan bahawa kaedah penyimpanan eva adalah didayakan dan bilangan maksimum rekod sejarah untuk merekod maklumat SQL ialah 20.

Dayakan fungsi Pemprofilan

Dalam klien MYSQL, laksanakan arahan berikut untuk mendayakan fungsi Pemprofilan:


tetapkan pemprofilan = 1;

Atau tetapkan tamat masa:
  1. set profiling = 1; set profiling_history_size=20; set profiling_history_size=1000000;
  2. Dalam keadaan biasa, semasa melaksanakan penyataan SQL, fail log profil akan memantau occupied , setelah melebihi had kapasiti, MYSQL akan menghentikan rakaman.

(2) Lihat log Pemprofilan

Selepas proses Pemprofilan selesai, anda boleh melihat log Pemprofilan melalui arahan berikut:

tunjukkan profil;

Ini arahan akan mengeluarkan semua pelaksanaan Maklumat pemprofilan pernyataan SQL, termasuk masa pelaksanaan pernyataan SQL, bilangan baris yang diimbas, kaedah pengisihan, penggunaan indeks, dsb. Dengan menganalisis rekod ini, anda boleh mengetahui di mana kesesakan prestasi MySQL terletak dan mengoptimumkan sewajarnya.

Ringkasan

Melalui penganalisis masa pertanyaan, anda boleh memahami sepenuhnya proses pelaksanaan dan kesesakan prestasi pernyataan pertanyaan MySQL, yang membantu mengoptimumkan pernyataan pertanyaan SQL dan meningkatkan prestasi MySQL. Dalam aplikasi praktikal, adalah perlu untuk menyesuaikan pelan analisis masa pertanyaan yang sepadan berdasarkan keadaan perniagaan tertentu untuk melaksanakan kesan alat analisis dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk meningkatkan prestasi MySQL dengan Penganalisis Masa Pertanyaan. 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