Mysql Database Tuning Bab 1

MySQL ialah sebuah perangkat lunak sistem administrasi basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread dan multi-user. MySQL AB menciptakan MySQL tersedia sebagai perangkat lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia yaitu MySQL AB. MySQL AB memegang penuh hak cipta hampir atas semua aba-aba sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.

Permasalahan

Secara default, MySQL mempunyai kinerja yang cukup baik. Namun untuk sanggup menangani data yang berkapasitas lebih besar, MySQL dengan pengaturan default akan menghasilkan performa yang kurang maksimal. Oleh alasannya ialah itu, dibutuhkan langkah-langkah untuk memaksimalkan performa MySQL dengan cara melaksanakan tuning pada MySQL. Dengan adanya tuning pada MySQL, diharapkan sanggup memaksimalkan kinerja dari MySQL.

Mengenal database tuning

Database tuning merupakan sejumlah aktifitas yang dilakukan untuk mengoptimalkan kinerja dari basisdata. Database tuning tidak hanya mencakup tuning query, tapi juga pada rancangan basis data, pemilihan DBMS, sistem operasi dan CPU yang menjalankan DBMS
Tujuan dari database tuning yaitu memaksimalkan penggunaan sumber daya sistem untuk melaksanakan kerja secara efisien dan secepat mungkin. Kebanyakan sistem telah dirancang untuk bekerja secara efisien, tapi sanggup dilakukan peningkatan kinerja MySQL secara signifikan dengan mengkostumisasi pengaturan,  konfigurasi database dan meng-tuning DBMS. Hasilnya, kinerja database MySQL lebih cepat dan produktifitas semakin meningkat.
Baca juga : 

Beberapa hal yang harus diperhatikan dikala melaksanakan database tuning :

  • Kesepakatan dengan user. Apabila melaksanakan proses tuning pada database, tentunya harapannya ialah adanya peningkatan performance dari database tersebut. Untuk itulah maka perlu adanya satu batasan berupa janji dengan user database, jangan hingga suatu proses tuning database tidak sanggup diterima oleh user alasannya ialah user merasa performance database yang telah kita lakukan tuning tidak significant perubahannya.
  • Identifikasi terlebih dahulu area-area mana saja pada database yang paling critical, apabila kita tidak segera melaksanakan tuning terhadap database tersebut, atau dengan kata lain prioritaskan proses tuning pada area-area yang dianggap paling critical.
  • Identifikasi bottleneck yang ada dalam sebuah atau beberapa query. Biasanya hanya alasannya ialah sebuah query yang buruk menyebabkan performance menjadi turun secara keseluruhan.
  • Jika memungkinkan, review terlebih dahulu design dari database yang akan kita tuning, apakah sudah bagus, sebelum kita melaksanakan tuning pada query-query terhadap database tersebut, alasannya ialah apabila kita melaksanakan query tuning tetapi dari sisi design database kurang bagus, maka tuning pada query akan tidak optimal, bahkan mungkin tidak ada impact sama sekali.
  • Pelajari seni administrasi index yang sudah berjalan pada database yang akan kita tuning, dan lakukan improvement terlebih dulu pada area index ini.
  • Jika kita rasakan index yang ada sudah optimal, lakukan identifikasi fragmentation level dari index yang ada, dan pastikan index statistic selalu up-to-date.
  • Pelajari bagaimana cara kerja query optimizer, pelajari dan test beberapa bentuk tipe JOIN.
  • Hindari penggunaan sub-query (select in select).
  • Selalu gunakan UNION ALL daripada UNION, apabila memang ada operasi yang membutuhkan UNION
  • Evaluasi penggunaan trigger yang berdampak pada performance.
  • Hindari penggunaan SELECT ...... INTO hingga dengan kita yakin bahwa user yang terhubung ke database hanya kita sendiri atau proses yang kita lakukan hanya memerlukan waktu yang tidak lama. Jika sangat terpaksa gunakan INSERT .......SELECT.
  • Gunakan SET NOCOUNT ON dalam semua modular code kita (Stored Procedure), untuk mengurangi gosip yang diberikan server ke client dan untuk mengurangi beban network.
  • Jika memungkinkan, gantu semua query yang merupakan inline query menjadi stored procedure yang berparameter
  • Jika memungkinkan, gunakan temporary table untuk mengurangi jumlah record pada dikala query. Jika temporary table tersebut di join dengan permanent table, buat index di dalam temporary table tersebut.
  • Optimalkan penggunaan loop, pindahkan semua proses yang tidak memerlukan pengulangan keluar loop
  • Jangan gunakan cursor bila memang tidak sangat terpaksa, TSQL tidak dioptimalkan untuk memproses 1 record dalam satu waktu

Implementasi database tuning

Rancangan index yang sempurna ialah salah satu teknik yang sanggup meningkatkan kecepatan DBMS dan sanggup mengurangi kebutuhan sumber daya database. Berikut ini beberapa cara untuk meningkatkan kinerja DBMS
  1. Hati-hati menentukan tipe dan panjang atribut. Bila memungkinkan, gunakan varian yang kecil ibarat SMALLINT atau MEDIUMINT dari pada INT. Saat memakai atribut yang tetap ibarat CHAR, tentukan panjang atribut sependek yang digunakan
  2. Gunakan atribut dengan panjang tetap. Tetapi coba hindari tipe ibarat VARCHAR atau BLOB. Saat memakai atribut teks dengan panjang tetap mungkin akan menghabiskan banyak ruang memori, membaca baris dengan panjang tetap dalam query lebih cepat dari pada membaca baris dengan panjang variabel
  3. Menjaga index kunci primer sekecil mungkin, buat index yang dibutuhkan saja dan gunakan prefix atribut yang memungkinkan. Pastikan atribut dalam index sering dipakai dalam query. Bila semua atribut digunakan, pastikan atribut tersebut paling banyak duplikasinya.
  4. Buat tabel statistik bila kumpulan fungsi ibarat COUNT() dan SUM() sering dipakai dalam query pada tabel besar. Tabel statistik menyimpan hanya 1 baris yang secara manual di update dengan kujmpulan nilai dari tabel lain.
  5. Jika banyak baris yang dihapus dari tabel atau tabel yang berisi atribut variabel sering dimodifikasi, akan menghabiskan banyak ruang. MySql biasanya tidak menghapus atau memodifikasi data. MySql menyediakan perintah OPTIMIZE TABLE yang harus dijalankan dikala DBMS sedang offline.
  6. Dimungkinkan untuk menciptakan tipe tabel untuk tujuan yang spesifik. Secara default MySql memakai tipe MyISAM.

Tuning yang sanggup dilakukan mencakup :

  • Tuning pada hardware
  • Tuning pada skema
  • Tuning pada query
  • Tuning dengan index
  • Tuning pada materialized view
  • Tuning pada transaksi
  • Tuning pada parameter MySQL Server


Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel