Jika Anda perlu mengubah nilainya, misalnya menonaktifkan caching tanpa memulai ulang server MySQL, lalu jalankan
set global query_cache_type=0;
Agar nilainya tidak reset setelah restart server MySQL, buka file konfigurasi di editor teks
Mari kita lihat lebih dekat dalam mendefinisikan query_cache_size MySQL. Di Bobcares, dengan Layanan Dukungan MySQL kami, kami dapat menangani masalah MySQL Anda
Apa itu query_cache_size di MySQL?
Untuk mengambil hasil kueri dengan cepat tanpa harus memulai dari awal, cache kueri MySQL menyimpan hasil kueri dari kueri yang sering dan baru dijalankan. Mereka sangat membantu dalam meningkatkan kinerja basis data dan kecepatan kueri
Monitor MySQL Query Cache oleh Logicmonitor
Bahkan dengan cache kueri yang disetel dengan baik, masih ada sekitar 10% hingga 15% overhead yang diperlukan untuk mempertahankannya. Jadi persentase hit rate cache kueri Anda [[Qcache_hits / [Qcache_hits + Qcache_inserts + Qcache_not_cached]]*100] harus sedekat mungkin dengan 100%. Itu adalah persentase kueri yang dilayani oleh cache alih-alih dieksekusi ulang oleh database berulang kali. Tentu saja, apa pun di bawah 10% atau 20% berarti cache kueri Anda mungkin lebih merusak performa daripada kebaikan. Biasanya, saya akan tetap menonaktifkan cache kueri jika rasio hit di bawah 50% atau… jika rasio prun/pembersihan masih tinggi setelah meningkatkan ukuran cache kueri ke batas aman
Rekomendasi ukuran MySQL Query Cache dari Oracle
Jadi sekali lagi, mengapa disarankan agar query_cache_size MySQL tetap kecil?
“Berhati-hatilah saat mengukur cache kueri terlalu besar, yang meningkatkan biaya overhead yang diperlukan untuk memelihara cache, mungkin di luar manfaat mengaktifkannya. Ukuran dalam puluhan megabyte biasanya menguntungkan. Ukuran dalam ratusan megabyte mungkin tidak. “
Lihat juga halaman bantuan MariaDB [alternatif pengganti drop-in MySQL].
Sekarang, karena semua variasi penyiapan MySQL, spesifikasi perangkat keras, dan fakta bahwa basis data berbeda dalam permintaan, jenis kueri, dll., Anda harus mengutak-atik konfigurasi Anda dan menggunakan rekomendasi maks 200 juta sebagai panduan untuk menemukan . Ukuran cache kueri MySQL sebesar 200 megabyte mungkin cepat di satu server dan mulai memperlambat segalanya di server lain. Karena itu, Anda perlu menyelidiki. Siapkan logging kueri lambat dan/atau siapkan logging kueri penuh selama beberapa menit [bergantung pada seberapa sibuk database Anda] dan lihat berapa banyak waktu yang dihabiskan dalam cache kueri
Caching kueri dapat memberikan peningkatan performa yang signifikan jika digunakan dengan benar dan/atau bersama dengan cache Memcached atau Redis. Seperti yang disebutkan, kuncinya adalah, saat Anda mulai menyetel ukuran cache kueri MySQL, mulai dari yang kecil . Anda harus menyesuaikan “query_cache_limit” karena default 1 megabyte mungkin terlalu besar. Mengizinkan cache Anda terisi terlalu cepat akan membuat banyak cache terpotong. Juga, lihat menyesuaikan parameter penyetelan "query_cache_min_res_unit" untuk memerangi fragmentasi cache. Sering kali Anda tidak dapat menyimpan semua kueri yang dapat di-cache di cache kueri, tetapi Anda tetap dapat memanfaatkannya dengan baik. Tes tes tes.
Konfigurasi & Pemantauan Cache Kueri MySQL
Ini konfigurasi cache kueri saya yang digunakan di server lain untuk menghosting blog ini [Server ini juga menghosting beberapa blog WordPress kecil hingga menengah lainnya. Total melayani sekitar 2 juta tampilan halaman per bulan]
Blog ini sekarang dihosting di VPS StackLinux kecilnya sendiri, mesin penyimpanan database adalah InnoDB dan cache kueri telah dinonaktifkan [lihat dua baris konfigurasi di atas untuk menonaktifkan jika diperlukan]
query_cache_type = 1 query_cache_limit = 256K query_cache_min_res_unit = 2k query_cache_size = 80M
Untuk memastikan MySQL Query Cache diaktifkan, gunakan
mysql> SHOW VARIABLES LIKE 'have_query_cache';_
Untuk memantau penggunaan statistik cache kueri
mysql> SHOW STATUS LIKE 'Qcache%';_
Tidak yakin apa yang harus dilakukan dengan statistik yang dikembalikan? . pl. Skrip ini akan membantu Anda menghindari jebakan performa MySQL yang paling kentara [termasuk ukuran cache kueri] dan membawa Anda ke setidaknya database Anda tidak terkonfigurasi dengan buruk. Lihat juga Alokasi Memori MariaDB [MySQL].
Berikut tangkapan layar tempat saya menggunakan Netdata [tercantum di 100 Pemantauan Server Teratas & Alat Pemantauan Aplikasi] untuk ikhtisar cache kueri…