Mempercepat Situs Web Anda Dengan Caching MySQL Query

Mempercepat Situs Web Anda Dengan Caching MySQL Query
Mempercepat Situs Web Anda Dengan Caching MySQL Query

Video: Mempercepat Situs Web Anda Dengan Caching MySQL Query

Video: Mempercepat Situs Web Anda Dengan Caching MySQL Query
Video: Tips Mengatasi Mozilla Firefox Tidak Bisa Dibuka dan Not Responding - YouTube 2024, April
Anonim

Salah satu cara terbaik untuk mempercepat aplikasi web Anda adalah dengan mengaktifkan query caching di database Anda, yang biasanya menyimpan queri SQL yang biasa digunakan di memori untuk akses instan pada halaman berikutnya yang membuat permintaan yang sama.

Alasan metode ini sangat kuat adalah Anda tidak perlu membuat perubahan apa pun pada aplikasi web Anda, Anda hanya perlu mengorbankan sedikit memori. Ini tidak akan menyelesaikan semua masalah Anda, tetapi itu pasti tidak bisa melukai.

Catatan: jika aplikasi Anda sering memperbarui tabel, cache permintaan akan terus-menerus dihapus dan Anda tidak akan mendapat banyak manfaat dari ini. Ini sangat ideal untuk aplikasi yang kebanyakan membaca terhadap database, seperti blog WordPress. Ini juga tidak akan berfungsi jika Anda menggunakan hosting bersama.

Aktifkan Caching dengan Menjalankan Server

Hal pertama yang Anda ingin lakukan adalah memastikan bahwa instalasi MySQL Anda sebenarnya memiliki dukungan cache query yang tersedia. Kebanyakan distribusi lakukan, tetapi Anda harus memeriksanya juga.

Anda akan ingin menjalankan perintah ini dari konsol MySQL Anda, yang akan memberi tahu Anda jika penyimpanan caching tersedia.

mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+

Jangan salahkan ini sebagai berarti bahwa penyimpanan cache sebenarnya diaktifkan, karena sebagian besar penyedia hosting tidak akan mengaktifkan ini secara default. Anehnya, instalasi Ubuntu Feisty saya sudah mengaktifkannya …

Selanjutnya kita perlu memeriksa dan melihat apakah cache query diaktifkan. Kami perlu memeriksa lebih dari satu variabel, jadi kami dapat melakukannya sekaligus dengan memeriksa% kueri variabel

mysql> show variables like 'query%'; +------------------------------+---------+ | Variable_name | Value | +------------------------------+---------+ | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 8388608 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | +------------------------------+---------+

Berikut hal-hal penting dalam daftar dan apa artinya:

  • query_cache_size - Ini adalah ukuran cache dalam byte. Menetapkan nilai ini ke 0 akan menonaktifkan cache secara efektif.
  • query_cache_type - Nilai ini harus AKTIF atau 1 untuk cache kueri agar diaktifkan secara default.
  • query_cache_limit - Ini adalah ukuran kueri maksimum (dalam byte) yang akan di-cache.

Jika nilai queri_cache_size disetel ke 0 atau Anda hanya ingin mengubahnya, Anda harus menjalankan perintah berikut, dengan mengingat bahwa nilainya dalam byte. Misalnya, jika Anda ingin mengalokasikan 8MB ke cache, kami akan menggunakan 1024 * 1024 * 8 = 8388608 sebagai nilainya.

SET GLOBAL query_cache_size = 8388608;

Demikian pula, opsi lain dapat diatur dengan sintaks yang sama:

SET GLOBAL query_cache_limit = 1048576;

SET GLOBAL

query_cache_type

= 1;

Sekarang bagaimana kita tahu apakah itu benar-benar berfungsi? Anda dapat menggunakan perintah SHOW STATUS untuk menarik semua variabel yang dimulai dengan "Qc" untuk melihat apa yang terjadi di bawah kap mesin.

mysql> SHOW STATUS LIKE 'Qc%'; +-------------------------+--------+ | Variable_name | Value | +-------------------------+--------+ | Qcache_free_blocks | 65 | | Qcache_free_memory | 201440 | | Qcache_hits | 18868 | | Qcache_inserts | 2940 | | Qcache_lowmem_prunes | 665 | | Qcache_not_cached | 246 | | Qcache_queries_in_cache | 492 | | Qcache_total_blocks | 1430 | +-------------------------+--------+ 8 rows in set (0.00 sec)

Anda akan melihat di statistik bahwa saya memiliki banyak sisa memori yang tersisa. Jika server Anda menunjukkan banyak prune lowmem, Anda mungkin perlu mempertimbangkan untuk meningkatkan nilai ini, tetapi saya tidak akan menghabiskan terlalu banyak memori pada cache permintaan untuk server web … Anda perlu meninggalkan memori yang tersedia untuk apache, php, ruby, atau apa pun yang Anda gunakan.

Aktifkan dalam File Konfigurasi

Jika Anda ingin perubahan ini bertahan dari reboot atau restart server mysql, Anda harus menambahkannya ke dalam file konfigurasi /etc/mysql/my.cnf untuk MySQL. Perhatikan bahwa itu mungkin di lokasi yang berbeda pada instalasi Anda.

Buka file menggunakan editor teks dalam mode sudo atau root, dan kemudian tambahkan nilai-nilai ini jika mereka belum ada dalam file. Jika mereka memang ada, cukup hapus komentar mereka.

query_cache_size = 268435456 query_cache_type=1 query_cache_limit=1048576

Caching query dapat meningkatkan kecepatan aplikasi web Anda secara signifikan, terutama jika aplikasi Anda kebanyakan membaca. Pantau status menggunakan metode di atas dan lihat cara kerjanya dari waktu ke waktu.

Direkomendasikan: