Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk meningkatkan prestasi dengan mengoptimumkan cache pertanyaan MySQL

Bagaimana untuk meningkatkan prestasi dengan mengoptimumkan cache pertanyaan MySQL

王林
王林asal
2023-05-11 08:16:40960semak imbas

MySQL ialah sistem pengurusan pangkalan data sumber terbuka yang popular yang digunakan secara meluas dalam banyak tapak web dan aplikasi. Salah satu mekanisme peningkatan prestasi yang penting ialah caching pertanyaan. Caching pertanyaan ialah mekanisme yang digunakan MySQL untuk cache set hasil pernyataan SELECT. Apabila pertanyaan dicache, MySQL akan menyimpan set hasil dalam memori dan mengembalikan hasil cache apabila pertanyaan yang sama diminta semula, dan bukannya melaksanakan pertanyaan itu semula. Di bawah keadaan yang ideal, caching pertanyaan boleh meningkatkan prestasi pertanyaan dengan banyak. Walau bagaimanapun, jika cache pertanyaan tidak dikonfigurasikan dan dioptimumkan dengan betul, ia boleh memberi kesan negatif terhadap prestasi. Oleh itu, artikel ini akan menerangkan cara meningkatkan prestasi dengan mengoptimumkan cache pertanyaan MySQL.

  1. Konfigurasikan cache pertanyaan
    Untuk mendayakan cache pertanyaan, anda perlu menetapkan saiz cache pertanyaan dan dayakan fungsi cache dalam fail konfigurasi MySQL. Tambahkan konfigurasi berikut dalam fail My.cnf:

query_cache_type = 1
query_cache_size = 128M

query_cache_type menentukan jenis cache. Nilai 1 bermakna caching pertanyaan didayakan;

query_cache_size menentukan saiz cache. Ia menentukan jumlah saiz semua set hasil pertanyaan yang boleh dicache. Nilainya harus diselaraskan berdasarkan memori sistem dan keperluan beban. Jika cache terlalu kecil, tidak semua set hasil akan dicache. Jika cache terlalu besar, memori terbuang dan prestasi mungkin terjejas.

  1. Elakkan pertanyaan lama
    Cache pertanyaan hanya digunakan pada pertanyaan PILIH dan hasil cache hanya akan dikembalikan jika set hasil pertanyaan tidak berubah. Oleh itu, jika set hasil pertanyaan sering berubah, keberkesanan cache pertanyaan akan dikurangkan dengan banyak. Pertanyaan yang berjalan lama juga menyebabkan cache pertanyaan menjadi kurang cekap kerana hasil cache perlu disimpan dalam ingatan, dan jika keputusan dalam cache basi, pertanyaan perlu dilaksanakan semula untuk mengemas kini cache. Oleh itu, pertanyaan jangka panjang harus dielakkan apabila mungkin untuk meningkatkan kecekapan caching.
  2. Elakkan menulis pertanyaan yang berbeza
    Jika terdapat berbilang pertanyaan dengan pernyataan SQL dan parameter pertanyaan yang sama, anda boleh meningkatkan kecekapan caching pertanyaan dengan menggunakan pernyataan yang disediakan. Penyata yang disediakan membenarkan parameter mengikat mengikut nama dan bukannya menghantar parameter yang sama melalui salinan pernyataan SQL. Dengan cara ini, berbilang pertanyaan SQL boleh digabungkan menjadi satu dan hanya satu set hasil pertanyaan perlu dicache dalam cache pertanyaan.
  3. Lumpuhkan pembersihan cache pertanyaan yang tidak diperlukan
    Set hasil pertanyaan perlu dikosongkan apabila jadual data diubah suai, yang biasanya berlaku apabila penyataan INSERT, UPDATE dan DELETE dilaksanakan. Walau bagaimanapun, jika cache sentiasa dikosongkan, prestasi cache akan sia-sia. Oleh itu, anda harus memilih untuk mengosongkan cache yang diperlukan sahaja dan melumpuhkan pembersihan cache pertanyaan yang tidak perlu. Caching pertanyaan boleh dilumpuhkan dengan menambahkan kata kunci SQL_NO_CACHE pada pertanyaan SQL.
  4. Dayakan statistik cache pertanyaan
    MySQL menyediakan statistik cache pertanyaan, yang boleh digunakan untuk memahami penggunaan cache pertanyaan. Anda boleh menggunakan arahan SHOW STATUS untuk melihat statistik cache pertanyaan. Statistik ini boleh memberikan maklumat tentang nisbah hit cache, saiz penggunaan cache, dsb. Maklumat ini boleh membantu mengenal pasti kesesakan prestasi dalam cache pertanyaan dan memeriksa keberkesanan penggunaan cache.
  5. Pilih item cache yang sesuai
    Secara lalai, MySQL menyimpan cache set hasil semua pernyataan SELECT, walaupun set hasil adalah sangat kecil. Walau bagaimanapun, ini boleh membazir cache kerana kebanyakan set hasil kecil mungkin tidak akan digunakan lagi. Untuk mengelakkan pembaziran ini, anda boleh memilih sama ada set hasil perlu dicache dengan menggunakan kata kunci SQL_CACHE atau SQL_NO_CACHE semasa pertanyaan.
  6. Kemas kini cache pertanyaan
    Apabila jadual pangkalan data berubah, hasil pertanyaan yang sepadan dalam cache pertanyaan juga perlu dikemas kini. Walau bagaimanapun, proses ini memerlukan banyak sumber CPU dan memori. Untuk mengelakkan situasi ini, teknik semak dan muat semula boleh digunakan untuk mengemas kini cache pertanyaan. Teknologi ini membenarkan MySQL mengemas kini hanya bahagian cache pertanyaan yang perlu dikemas kini, dan bukannya mengosongkan keseluruhan cache.

Ringkasnya, mengoptimumkan cache pertanyaan MySQL adalah kunci untuk meningkatkan prestasi. Prestasi pertanyaan boleh dipertingkatkan dengan mengkonfigurasi saiz cache pertanyaan yang sesuai, mengelakkan pertanyaan berjalan lama, menggunakan pernyataan yang disediakan, melumpuhkan pembersihan cache pertanyaan yang tidak perlu, mendayakan statistik cache pertanyaan, memilih entri cache yang sesuai dan mengemas kini cache pertanyaan, dan Kurangkan overhed.

Atas ialah kandungan terperinci Bagaimana untuk meningkatkan prestasi dengan mengoptimumkan cache pertanyaan 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