FORMAT TABEL MYSQL

Jenis Format Tabel Pada MySQL


MySQL menyediakan beberapa jenis format tabel yang penggunaannya tergantung dari tujuan pembuatan tabel tersebut. Jenis format tabel tersebut diantaranya adalah:
1.Format Tabel MyISAM
2.Format Tabel Innodb
Bila ditinjau dari kemampuan tabel, maka kedua tabel tersebut dapat dikategorikan sebagai tabel dengan kemampuan bertransaksi (transaction-safe tables /TST) dan tabel tanpa kemampuan bertransaksi (not transaction-safe tables /NTST), sehingga daftar tabel di atas dapat kita bagi lagi menjadi:

  1. Transaction-Safe Tables (TST) Format Tabel Innodb
  2. Not Transaction-Safe Tables (NTST) Format Tabel MyISAM
Apa yang dimaksud dengan Transaksi? Transaksi adalah kemampuan software untuk membatalkan suatu proses, kemudian mengembalikan nilai awal sebelum proses tersebut terjadi. Kita dapat membayangkannya sebagai sebuah transaksi keuangan di bank. Anggaplah Anda sedang berdiri di depan sebuah mesin ATM untuk melakukan penarikan tunai. Sebelumnya Anda memiliki saldo awal 10 juta rupiah, dan berniat mengambil uang tunai sebanyak 2 juta rupiah saja. Bila transaksi tunai berhasil, maka Anda akan mendapatkan uang tunai dari ATM sebesar 2 juta rupiah, dan secara langsung nilai saldo di rekening Anda akan berkurang sebanyak 2 juta rupiah, sehingga menjadi 8 juta rupiah. Itu skenario normalnya, bila semuanya berjalan secara lancar-lancar saja.Skenario tidak normalnya adalah bagaimana bila mesin ATM belum berhasil mengeluarkan uang tunai yang Anda minta, tetapi tiba-tiba terjadi aliran listrik padam. Apakah saldo Anda akan tetap berkurang sebanyak 2 juta rupiah walaupun Anda belum menerima uang tunai tersebut dari mesin ATM? Lebih parah lagi, kartu ATM Anda ikut tertelan di mesin ATM tersebut , atau saldo Anda akan tetap berjumlah 10 juta rupiah karena transaksi akan dibatalkan secara otomatis oleh sistem perbankan? Atau, yang paling menguntungkan, saldo Anda tetap 10 juta rupiah tetapi ATM sempat mengeluarkan uang juga.
Bila database perbankan tersebut memiliki fasilitas transaction-safe tables (TST) maka yang terjadi adalah saldo And a di rekening tetap 10 juta rupiah, Anda sama sekali tidak menerima uang tunai 2 juta rupiah dari ATM, serta kartu ATM Anda selamat tidak tertelan di mesin tersebut. Adil kan? Kurang lebih seperti itulah gambaran sederhana dari cara kerja transaction -safe tables (TST). Sebaliknya, bila tidak di dukung oleh transaction-safe tables (TST), maka Anda mungkin akan mengalami kerugian .
Keunggulan transaction-safe tables (TST) dibandingkan dengan not transaction-safe tables (NTST) adalah:

  1. Lebih aman. Seperti pada contoh kasus di atas.
  2. Cukup menggunakan satu perintah COMMIT saja untuk mengupdate beberapa perintah di atasnya.
  3. Dapat menjalankan perintah ROLLBACK yang mengabaikan perubahan -perubahan yang
  4. terjadi pada transaksi yang dibatalkan.

Sedangkan keunggulan dari not transaction-safe tables (NTST) dibandingkan dengan transaction-safe tables (TST) adalah:

  1. Proses lebih cepat karena tidak adanya beban transaksi (no transaction overhead ).
  2. Penggunaan ruang dalam hard disk yang lebih hemat karena tidak adanya beban transaksi.
  3. Penggunaan memori yang lebih hemat, juga karena tidak adanya beban transaksi.
Dari gambaran di atas, Anda bisa menentukan format tabel apa saja yang akan Anda pilih sesuai dengan kebutuhan. Tentu harus ada pertimbangan yang matang dalam hal pemilihan format tabel ini. Pada MySQL sendiri, format tabel MyISAM merupakan format default yang digunakan. Selanjutnya, mari kita bahas format tabel tersebut.

Format Tabel MyISAM

Format tabel MyISAM merupakan pengembangan dan penyempurnaan dari format tabel ISAM, dan merupakan format tabel default pada MySQL. Pada MyISAM file indeks disimpan dengan nama akhiran .MYI dan file data disimpan dengan nama akhiran .MYD. Adapun penyempurnaan yang dilakukan pada MyISAM antara lain:

  1. Adanya suatu kode pembeda yang akan memberi tanda bila suatu tabel tidak ditutup dengan semestinya setelah dibuka. Bila Anda menjalankan program MySQL Server, mysqld, dengan pilihan –myisam-recover, maka secara otomatis tabel yang telah ditandai tersebut akan dipulihkan (bila rusak) atau ditutup dengan semestinya (bila belum ditutup). Hal ini sangat membantu untuk menjaga keutuhan dan validitas tabel.
  2. Kemampuan kolom AUTO_INCREMENT lebih handal dibandingkan dengan format tabel ISAM.
  3. Mendukung file ukuran besar (63-bit) pada sistem operasi tertentu yang juga mendukung
  4. pembuatan dan pembacaan file-file data ukuran besar.
  5. Pada kolom BLOB dan TEXT bisa dilakukan pengindeksan.
  6. NULL diperkenankan pada kolom yang diindeks (tetapi sebaiknya dihindari saja).
  7. Jumlah maksimum file indeks adalah 32 buah per tabelnya, dan masih dapat dikembangkan hingga mencapai 64 buah per tabel dengan kondisi tertentu tanpa harus mengkompilasi ulang program myisamchk.
  8. Program bantu myisampack dapat memadatkan kolom BLOB dan VARCHAR.

Walaupun format tabel MyISAM dapat dikategorikan sangat handal, tetapi pada suatu saat bisa saja terjadi kerusakan yang diakibatkan oleh:

  1. Server mati secara mendadak akibat aliran listrik padam.
  2. Kerusakan pada perangkat keras.
  3. Penghentian proses oleh perintah KILL pada saat proses sedang dalam kondisi menulis.
  4. Kesalahan pada program MySQL atau ISAM.
  5. Melakukan suatu proses dengan program bantu lain (seperti MyISAM) pada saat tabel sedang sibuk diakses.

Ciri-ciri tabel MyISAM yang mengalami kerusakan antara lain:

  1. Munculnya pesan kesalahan ‘ Incorrect key file for table: ‘…’
  2. Query tidak menghasilkan data yang lengkap.
Bila hal tersebut terjadi, yang dapat Anda lakukan adalah segera memperbaiki kerusakan tabel tersebut dengan menggunakan perintah CHECK TABLE atau REPAIR TABLE.
mysql> CHECK TABLE nama_tabel pilihan_pemeriksaan ;
mysql> REPAIR TABLE nama_tabel pilihan_perbaikan ;
Bila Anda ingin mengubah format tabel ke MyISAM, lakukan dengan cara:
mysql> ALTER TABLE nama_tabel TYPE=MYISAM ;
Pada saat pertama kali kita membuat tabel ini dengan perintah CREA TE TABLE, bisa dinyatakan dengan perintah sebagai berikut:
mysql> CREATE TABLE ujian
-> (NoSiswa INT NOT NULL AUTO_INCREMENT,
-> Nilai INT NOT NULL,
-> PRIMARY KEY (NoSiswa))
-> TYPE=MyISAM ;
Atau bisa juga dengan perintah di bawah ini, dengan menghilangkan perintah TYPE=MYISAM, karena format tabel MyISAM adalah format tabel default yang digunakan oleh MySQL.
mysql> CREATE TABLE ujian
-> (NoSiswa INT NOT NULL AUTO_INCREMENT,
-> Nilai INT NOT NULL,
-> PRIMARY KEY (NoSiswa))
-> ;
Format Tabel InnoDB
Format Tabel InnoDB mendukung proses transaksi dengan adanya fasilitas rollback dan commit, dan juga kemampuan untuk memulihkan tabel bila terjadi kerusakan pada tabel tersebut. Mampu melakukan penguncian (locking) pada tingkatan record dan juga mampu membaca pada perintah SELECT yang tidak dikunci (mirip dengan kemampuan Oracle). Kemampuan-kemampuan tersebut meningkatkan kecepatan dan kinerja penggunaan multi user. Ada banyak sekali fitur yang disediakan oleh Tabel InnoDb ini. Anda bisa mendapatkan informasi lebih rinci langsung di situs www.innodb.com. Anda bisa juga mendapatkan versi komersial dari InnoDB yang bisa didownload pada situs tersebut.
InnoDb telah digunakan untuk database yang membutuhkan kinerja sangat tinggi dan berukuran sangat besar. Misal, Mytrix Inc, sebuah perusahaan yang bergerak di bidang riset statistik di Internet , menggunakan InnoDb untuk mengelola data lebih dari 1 Terabyte (1012 byte), dengan jumlah tabel lebih dari 100.000. Secara keseluruhan jumlah recordnya mencapai lebih dari 20 milyar record. Sebuah bursa saham Paris di Perancis menggunakan InnoDB sebagai solusi databasenya. Pada saat beban kerja sedang sepi, jumlah query yang dilayani mencapai rata-rata 800 proses insert/update per detiknya. Sedangkan pada saat ramai, jumlah query yang dilayani mencapai rata -rata 2.000 proses insert/update per detiknya.
Kelebihan format tabel InnoDB antara lain:
  1. Format Tabel InnoDB mendukung transaksi dengan menyediakan fasilitas rollback dan commit.
  2. InnoDB merupakan satu-satunya format tabel di dalam MySQL yang mendukung Foreign Key Constraint .
  3. Kecepatan InnoDB pada beberapa kasus bahkan melebihi kecepatan format tabel MyISAM. Informasi mengenai kecepatan ini dapat dilihat di halaman benchmark dengan alamat http://www.innodb.com/bench.html.
  4. InnoDB memiliki kemampuan melakukan penguncian pada tingkatan record ( row level locking). Bandingkan dengan MyISAM yang hanya memiliki kemampuan penguncian pada tingkatan tabel (table level locking). Hal ini sangat berpengaruh dalam meningkatkan kinerja akses multiuser.InnoDB memiliki fasilitas backup secara langsung, yaitu dapat melakukan backup pada database yang sedang berjalan tanpa harus melakukan proses locking dulu dan tidak akan mengganggu operasional database.
  5. InnoDB memiliki kemampuan memulihkan tabel secara otomatis pada tabel-tabel yang rusak.
  6. Ukuran database InnoDB dapat melebihi 2 Gigabyte, walaupun sistem operasi yang digunakan saat itu tidak mendukung penggunaan database melebihi 2 Gigabyte.

One Response to “FORMAT TABEL MYSQL”

  1. dimas Says:

    dear mas harisanto,

    informasi ini sangat membantu saya untuk menambah pengetahuan. ada satu hal yang ingin saya tanya seputar database tipe myisam dan innodb. begini mas harisanto, saya ada kasus di salah satu website saya menggunakan database dgn tipe tabel inndodb. nah tanpa sepengetahuan saya, ternyata engine innodb di web server hosting saya ternyata sudah tidak didukung. sehingga muncul error MySQL said #1033 - Incorrect information in file: ‘./xxxx_xxx/xxxx_comments.frm’ …nah menurut cs hosting saya, katanya coba diubah ke tipe myisam dengan query ALTER TABLE…tapi saya coba sudah tidak bisa dan selalu muncul informasi error yg sama..

    yang ingin saya tanyakan, apakah data pada tabel databse tersebut hilang atau masih bisa diselamatkan?dan apakah saya harus membuat tabel database baru dgn tipe myisam?

    mohon informasi dan bantuannya.

    terima kasih,
    dimas

Leave a Reply