Tuning MYSQL query performance

By | August 19, 2008

Kadang dalam suatu aplikasi kita melakukan query select data pada tabel yang sama dan dilakukan berulang-ulang, hal ini akan sangan membebani MYSQL. Dalam MYSQL terdapat fitur yang bagus untuk memepercepat query dengan mengaktifkan query cache. Apabila fitur ini diaktifkan setiap query akan di cache di memory dan ini akan meningkatkan query performance.

Untuk mengaktifkan query cache, kita perlu menambahkan beberapa baris options di mysql configuration file (my.cnf) :

1 set query_cache_type = 1. (ada beberapa nilai yang mungkin : 0 (disable / off), 1 (enable / on) and 2 (on demand).

query-cache-type = 1

2 set query_cache_size = sesuai kemampuan RAM, yang direkomendasikan 20MB.

query-cache-size = 20M

Jika kita memeilih query-cache-type = 2 ( on demand ), anda perlu mengedit perintah query agar support cache, misal :

SELECT SQL_CACHE field1, field2 FROM table1 WHERE field3 = ‘yes’

Untuk mengecek apakah query cache sudah aktif, jalan lakukan perintah berikut :

SHOW VARIABLES LIKE ‘%query_cache%’;

Hasil nya :

+——————-+———+
| Variable_name | Value |
+——————-+———+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_size | 20971520 |
| query_cache_type | ON |
+——————-+———+
4 rows in set (0.06 sec)

Untuk mengecek apakah query cache bisa berjalan dengan baik, caranya lakukan 2 kali query yang sama dan cek variable berikut di MYSQL :

SHOW STATUS LIKE ‘%qcache%’;

+————————-+———-+
| Variable_name | Value |
+————————-+———-+
| Qcache_queries_in_cache | 1 |
| Qcache_inserts | 3 |
| Qcache_hits | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2 |
| Qcache_free_memory | 20947592 |
| Qcache_free_blocks | 1 |
| Qcache_total_blocks | 4 |
+————————-+———-+

Sudah deh MYSQL query cache nya udah jalan 🙂