w3lcom3 to my blog : blog from my inspiration

Google
 

Tuesday, July 18, 2006

STORAGE ENGINES di MySQL

Mysql mendukung beberapa engine penyimpanan yang bertindak sebagai peng-handle untuk tipe-tipe tabel yang berbeda. Mysql menyimpan engine penyimpanan yang meng-handle tabel transaction-safe dan meng-handle tabel non-transaction-safe.

  1. MyISAM
    Menangani tabel yang non-transactional. Tipe tabel ini menyediakan penyimpanan dan retrieval berkecepatan tinggi, dan juga kemampuan pencarian fulltext. MyISAM didukung di semua konfigurasi MySQL dan merupakan engine penyimpanan default kecuali anda telah melakukan konfigurasi MySQL untuk menggunakan tipe lain sebagai defaultnya.
  2. MEMORY
    Tipe ini menyediakan tabel memory dalam (in-memory). Engine penyimpanan MERGE mengijinkan koleksi dari tabel MyISAM yang serupa untuk di-handle sebagai tabel tunggal. Seperti MyISAM, engine penyimpanan MEMORY dan MERGE meng-handle non-transactional tabel, keduanya juga termasuk dalam defaultnya MySQL

    Catatan: engine penyimpanan MEMORY dulunya dikenal sebagai engine HEAP
  3. Engine penyimpanan InnoDB dan BDB menyediakan tabel transaction-safe. BDD termasuk distribusi biner dalam MySQL-Max pada sistem operasi yang mendukungnya. InnoDB juga termasuk salam semua distribusi biner MySQL 5.1. Dalam distribusi sumber, anda dapat mengatur pemakaian salah satu engine dengan melakukan konfigurasi MySQL.
  4. Engine penyimpanan EXAMPLE adalah engine yang tidak melakukan apapun. Anda dapat membuat tabel dengan engine ini, tapi tidak ada data yang dapat disimpan dalam engine ini atau di-retrieval dari engine ini. Kegunaan engine ini adalah menyajikan contoh dalam source code MySQL yang mengilustrasikan bagaimana memulai penulisan engine penyimpanan yang baru. Ini merupakan minat utama untuk para developer
  5. NDB Cluster merupakan engine penyimpanan yang digunakan oleh cluster MySQL untuk mengimplement tabel yang dibagi melalui banyak komputer. Jenis ini tersedia di distribusi biner MySQL-Max 5.1. engine penyimpanan ini baru didukung di sistem operasi Linux, Solaris, dan Mac OS X. Pada release yang akan datang, akan diusahakan didukung oleh Windows
  6. Engine penyimpannan ARCHIVE digunakan untuk menyimpan sejumlah data yang besar tanpa mengindex dengan footprint yang sangat kecil
  7. Engine penyimpanan CSV menyimpan data dalam file text menggunakan format nilai pemisah koma
  8. Engine penyimpanan BLACKHOLE menerima tetapi tidak menyimpan data dan retrievals selalu mengembalikan set kosong.

Engine penyimpanan FEDERATED menyimpan data di database yang jauh. Saat ini, engine ini hanya bekerja dengan MySQL, menggunakan MySQL C Client API.

Ketika anda membuat tabel baru, anda dapat menentukan engine penyimpanan mana yang digunakan dengan menambahkan opsi tabel ENGINE ke perintah CREATE TABEL:
CREATE TABLE t (i INT) ENGINE = INNODB;

Jika anda menghilangkan opsi ENGINE atau TYPE, engine default akan digunakan. Secara normal, adalah MyISAM, tapi anda bisa mengubahnya dengan menggunakan opsi startup server –default –storage-engine atau –default –table-type, atau dengan melakukan pengaturan default-storage-engine atau default-storage-type di file konfigurasi my.cnf.

Anda dapat melakukan pengaturan engine penyimpanan default yang digunakan selama current session dengan melakukan pengaturan variabel storage_engine atau table_type:
SET storage_engine=MYISAM;SET table_type=BDB;

Jika MySQL diinstal di windows menggunakan MySQL Configuration Wizard, engine penyimpanan InnoDB dapat dipilih sebagai default.

Untuk melakukan konversi tabel dari engine penyimpanan yang satu ke yang lain, gunakan perintah ALTER TABLE yang membuat engine baru:
ALTER TABLE t ENGINE = MYISAM;

Jika anda berusaha menggunakan engine penyimpanan yang tercompile, MySQL membuat tabel menggunakan engine penyimpanan default, biasanya MyISAM. Hal ini tepat jika anda ingin menyalin tabel antar server yang mendukung engine penyimpanan yang berbeda.

Untuk tabel baru, MySQL selalu membuat file .frm untuk menyimpan definisi tabel dan kolom. Indeks tabel dan data mungkin disimpan di satu atau banyak file, tergantung dari engine penyimpanan. Server membuat file .frm di atas level engine penyimpanan. Engine penyimpanan tesendiri dapat membuat bermacam-macam file tambahan yang dibutuhkan untuk tabel yang mereka manage.

Sebuah database mungkin memiliki tabel-tabel berbeda tipe. Oleh karena itu, tabel-tabel tidak perlu di buat dengan engine penyimpanan yang sama.

Tabel-tabel Transaction-safe(TSTs) memiliki beberapa keuntungan dibandingkan dengan tabel-tabel non-transactional-safe (NTSTs):

  • Tabel lebih aman. Bahkan jika MySQL crash atau anda mendapat masalah hardware, anda dapat memperoleh data anda kembali, menggunakan recovery automatic atau dari backup tambah dengan log transaction
  • Anda dapat menggabungkan banyak perintah dan menjalankannya semua pada waktu yang sama dengan perintah COMMIT (jika autocommit di disable)
  • Anda dapat mengeksekusi ROLLBACK untuk membatalkan perubahan anda (jika autocommit di disable)
  • Jika update gagal, semua perubahan akan dikembalikan semula. (jika non-transaction-safe tabel, semua perubahan yang telah dikerjakan akan disimpan tetap)
  • Bisa menyediakan concurrency lebih baik untuk tabel yang mendapat banyak update secara concurrent dengan baca

Keuntungan engine penyimpanan non-transaction-safe

  • Lebih cepat
  • Permintaan ruang disk yang lebihi kecil
  • Memory lebih kecil untuk melakukan update

1 Comments:

  • At 2:38 AM, Anonymous Anonymous said…

    lumayan...

     

Post a Comment

<< Home