Skip to main content

Mempecepat Kinerja MySQL Database

Pada artikel sebelumnya, sudah dibahas tentang teori database tuning (baca : MySQL Database Tuning). Kali ini, akan dijelaskan mengenai implementasi atau praktek dari database tuning. Seperti apakah database tuning ? Berikut ini cara dan penjelasannya

Tuning Pada Query

Sebelum dilakukan pada query pada database, lebih baik jika kita mengetahui deskripsi kolom dari tabel yang akan digunakan dalam query. Misalnya jika kita akan melakukan query pada tabel film. Maka untuk mendapatkan deskripsi dari tabel film, kita bisa menggunakan perintah EXPLAIN.

Dengan perintah EXPLAIN, bisa ditampilkan deskripsi tiap kolom dari tabel, tipe data, nilai default bahkan hasil dari query SELECT. Perintah EXPLAIN merupakan sinonim dari perintah DESCRIBE.

Beberapa teknik optimasi query

  • query sql menjadi lebih cepat jika Anda menggunakan nama kolom dalam pernyataan SELECT yang sebenarnya bukan dari '*'. Contoh: Tuliskan query sebagai SELECT id, first_name, last_name, age, subject FROM student_details; Daripada: SELECT * FROM student_details;
  • Gunakan EXISTS bukan DISTINCT ketika menggunakan bergabung yang melibatkan tabel memiliki hubungan satu-ke-banyak. Contoh: Tuliskan query sebagai SELECT d.dept_id, d.dept FROM dept d WHERE EXISTS ( SELECT 'X' FROM employee e WHERE e.dept = d.dept); Daripada: SELECT DISTINCT d.dept_id, d.dept FROM dept d,employee e WHERE e.dept = e.dept;
  • Untuk menulis query yang memberikan kinerja yang efisien mengikuti aturan umum SQL standar.
  • Jika kita memiliki tabel yang berukuran cukup besar, lakukan optimisasi dengan perintah OPTIMIZE TABLE

Jika kita memiliki tabel yang korup, lakukan perintah REPAIR TABLE. Namun perintah ini hanya berkerja pada tabel MyISAM dan Archive.

Jika kita ingin melakukan checking pada tabel, lakukan perintah CHECK TABLE

Baca juga :

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 mengecek fitur query cache, gunakan perintah

Untuk mengaktifkan query cache, gunakan perintah

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

untuk menngatur besar query cache, gunakan perintah

Tuning pada Parameter MySQL Server

Pembahasan kali ini sangat berhubungan dengan sistem kerja MySQL Server. Oleh karena itu, jika kita melakukan perubahan pada sistem ini, perubahan ini dapat dirasakan saat kita mengoperasikan apapun yang berkaitan dengan MySQL Server. Namun, yang perlu diingat, pekerjaan ini hanya bisa dilakukan oleh database administrator.

Tuning parameter mempercepat kinerja MySQL Server database. Database MySQL tidak akan lambat saat diakses. Pada MySQL Server, banyak parameter yang menentukan kinerja server untuk mengolah basis data. Parameter ini bisa kita lihat dengan memasukkan perintah SHOW VARIABLES.

Untuk melakukan tuning pada MySQL Server, kita bisa mengedit beberapa parameter pada file “my.cnf”(platform Linux) atau “my.ini”(platform Windows).

Pada pembahasan kali ini menggunakan contoh file my.cnf pada platform Linux (Ubuntu 10.04). Dalam file tersebut, terdapat banyak parameter yang bisa digunakan. Namun hanya beberapa parameter yang bisa meningkatkan kinerja MySQL Server.

Berikut ini beberapa parameter yang bisa meningkatkan kinerja MySQL Server

  • Query cache size : digunakan untuk menjalankan query berulang-ulang
  • Key buffer size : untuk mengalokasikan indeks
  • Table cache : melakukan cache query dan tabel
  • Sort buffer : melakukan percepatan sorting
  • read rnd buffer size : dialokasikan tiap thread, untuk mempercepat kinerja saat query pada barisan yang urut.
  • Thread cache :
  • Log Slow Query

untuk memulainya, buka file my.cnf / my.ini. Sebelumnya, pastikan menggunakan akses dengan root atau administrator.

Kemudian cari parameter yang telah dibahas sebelumnya. Misalnya :

query_cache_size=16M ubah menjadi query_cache_size=32M
ket_buffer = 32M ubah menjadi ket_buffer = 32M
table_cache=64 ubah menjadi table_cache=128
sort_buffer=16M ubah menjadi sort_buffer=64M
read_buffer=16M ubah menjadi read_buffer=64M
thread_cache=8 ubah menjadi thread_cache=32

jangan lupa menyimpan perubahan tersebut. Kemudian restart MySQL Server.

Benchmarking

Setelah kita melakukan tuning pada MySQL, alangkah baiknya jika kita melakukan uji kinerja MySQL. Disini kita akan menggunakan aplikasi mysqltuner pada platform Linux.

Disini akan tampil statistik, dan ukuran kinerja dari MySQL Server yang terinstal. Program ini juga menampilakan rekomendasi untuk perbaikan kinerja.

Itulah beberapa cara melakukan tuning database MySQL. Selamat mencoba dan semoga bermanfaat...

Apakah kalian punya pengalaman atau pendapat yang berbeda ? Tuliskan lewat kotak komentar di bawah. Usahakan sesuai topik artikel ini.
Tulis komentar