Mysql Database Tuning Bab 2
Tuning Pada Query
Sebelum dilakukan pada query pada database, lebih baik kalau kita mengetahui deskripsi kolom dari tabel yang akan dipakai dalam query. Misalnya kalau kita akan melaksanakan query pada tabel film. Maka untuk mendapat deskripsi dari tabel film, kita sanggup memakai perintah EXPLAIN. Dengan perintah EXPLAIN, sanggup ditampilkan deskripsi tiap kolom dari tabel, tipe data, nilai default bahkan hasil dari query SELECT. Perintah EXPLAIN merupakan sinonim dari perintah DESCRIBE.Beberapa teknik meningkatkan secara optimal query
- query sql menjadi lebih cepat kalau Anda memakai nama kolom dalam pernyataan SELECT yang sebetulnya 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 memakai bergabung yang melibatkan tabel mempunyai korelasi 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 memperlihatkan kinerja yang efisien mengikuti hukum umum SQL standar.
- Jika kita mempunyai tabel yang berukuran cukup besar, lakukan optimisasi dengan perintah OPTIMIZE TABLE
- Jika kita mempunyai tabel yang korup, lakukan perintah REPAIR TABLE. Namun perintah ini hanya berkerja pada tabel MyISAM dan Archive.
- Jika kita ingin melaksanakan checking pada tabel, lakukan perintah CHECK TABLE
Baca juga :
Kadang dalam suatu aplikasi kita melaksanakan query select data pada tabel yang sama dan dilakukan berulang-ulang, hal ini akan sangan membebani MYSQL. Dalam MYSQL terdapat fitur yang manis 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
>
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 bekerjasama dengan sistem kerja MySQL Server. Oleh alasannya yaitu itu, kalau kita melaksanakan perubahan pada sistem ini, perubahan ini sanggup dirasakan ketika kita mengoperasikan apapun yang berkaitan dengan MySQL Server. Namun, yang perlu diingat, pekerjaan ini hanya sanggup dilakukan oleh database administrator.
Tuning parameter MySQL Server mempercepat kinerja database. Database MySQL tidak akan lambat ketika diakses. Pada MySQL Server, banyak parameter yang memilih kinerja server untuk mengolah basis data. Parameter ini sanggup kita lihat dengan memasukkan perintah SHOW VARIABLES.
Tuning parameter MySQL Server mempercepat kinerja database. Database MySQL tidak akan lambat ketika diakses. Pada MySQL Server, banyak parameter yang memilih kinerja server untuk mengolah basis data. Parameter ini sanggup kita lihat dengan memasukkan perintah SHOW VARIABLES.
Untuk melaksanakan tuning pada MySQL Server, kita sanggup mengedit beberapa parameter pada file “my.cnf”(platform Linux) atau “my.ini”(platform Windows).
Pada pembahasan kali ini memakai rujukan file my.cnf pada platform Linux (Ubuntu 10.04). Dalam file tersebut, terdapat banyak parameter yang sanggup digunakan. Namun hanya beberapa parameter yang sanggup meningkatkan kinerja MySQL Server.
Berikut ini beberapa parameter yang sanggup meningkatkan kinerja MySQL Server
- Query cache size : dipakai untuk menjalankan query berulang-ulang
- Key buffer size : untuk mengalokasikan indeks
- Table cache : melaksanakan cache query dan tabel
- Sort buffer : melaksanakan percepatan sorting
- read rnd buffer size : dialokasikan tiap thread, untuk mempercepat kinerja ketika query pada barisan yang urut.
- Thread cache :
- Log Slow Query
untuk memulainya, buka file my.cnf / my.ini. Sebelumnya, pastikan memakai kanal 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 melaksanakan tuning pada MySQL, alangkah baiknya kalau kita melaksanakan uji kinerja MySQL. Disini kita akan memakai 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 melaksanakan tuning database MySQL. Selamat mencoba dan supaya bermanfaat...