0 MyISAM, INNODB, dan HEAP

MyISAM 
Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah digunakan. Jika kita akan menyimpan data sederhana yang tidak terlalu rumit, maka gunakanlah tipe tabel ini. Kelebihan utama MyISAM adalah kecepatan dan kestabilannya. Jika kita memilih tipe tabel MyISAM, maka MySQL secara  otomatis akan menentukan salah satu dari tiga jenis tabel MyISAM, yaitu :
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)) 
-> ;





InnoDB
Tipe tabel InnoDB merupakan tipe tabel MySQL yang mendukung proses transaksi. Tipe ini memiliki beberapa keunggulan, antara lain:
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.


Ukuran database InnoDB dapat melebihi 2 Gigabyte, walaupun sistem operasi yang digunakan
saat itu tidak mendukung penggunaan database melebihi 2 Gigabyte



Dua jenis mesin utama penyimpanan tabel untuk database MySQL adalah InnoDB dan MyISAM. 
Berikut ringkasan perbedaan fitur dan kinerja:

1. InnoDB lebih baru sementara MyISAM lebih tua.
2. InnoDB lebih kompleks, sementara MyISAM lebih sederhana.
3. InnoDB semakin ketat dalam integritas data sementara MyISAM longgar.
4. InnoDB menerapkan tingkat baris kunci untuk memasukkan dan meng-update baris
    sementara MyISAM menerapkan tingkat kuncitabel.
5. InnoDB memiliki transaksi sementara MyISAM tidak.
6. InnoDB memiliki kunci asing dan hubungan contraints sementara MyISAM tidak.
7. InnoDB memiliki crash pemulihan lebih baik sementara MyISAM yang miskin memulihkan
    integritas data pada sistem crash.
8. MyISAM memiliki indeks pencarian teks penuh (full text search) sementara InnoDB tidak.


Mengingat perbedaan-perbedaan, InnoDB dan MyISAM memiliki kelebihan dan kekurangan mereka yang unik terhadap satu sama lain. Mereka masing-masing lebih cocok dalam beberapa skenario dari yang lain.


Keuntungan dari InnoDB:
1. InnoDB harus digunakan di mana integritas data lebih prioritas.
2. Lebih cepat dalam menulis-intensif (penyisipan,  update) tabel karena menggunakan tingkat
    penguncian baris dan hanya tahan perubahan pada baris yang sama yang sedang
    dimasukkan atau diperbaharui.


Kekurangan dari InnoDB:
1. Karena InnoDB harus menjaga hubungan yang berbeda antara tabel, database
    administrator dan pencipta skema harus mengambil lebih banyak waktu dalam
    mendesain model data yang lebih kompleks daripada MyISAM.
2. Mengkonsumsi sumber daya sistem yang lebih seperti RAM. Direkomendasikan bahwa mesin
    InnoDB dimatikan jika tidak perlu substansial untuk itu setelah instalasi MySQL.
3. Tidak-pengindeksan teks penuh.


Keuntungan MyISAM :
1. Sederhana untuk merancang dan membuat, sehingga lebih baik untuk pemula. Jangan
    khawatir tentang hubungan luar negeri antara tabel.
2. Lebih cepat dari InnoDB pada keseluruhan sebagai akibat dari struktur sederhana sehingga
    jauh lebih sedikit biaya sumber daya server.
3. Pengindeksan teks lengkap.
4. Sangat baik untuk membaca-intensif (select) tabel.


Kekurangan dari MyISAM:
1. Tidak ada integritas data (misalnya kendala hubungan), yang kemudian datang tanggung
    jawab dan  overhead dari para administrator database dan pengembang aplikasi.
2. Tidak mendukung transaksi yang penting dalam aplikasi perbankan.
3. Lebih lambat dari InnoDB untuk tabel yang sering dimasukkan atau diperbaharui, karena
    seluruh tabel terkunci untuk memasukkan atau memperbarui.


Perbandingan tersebut cukup sederhana. InnoDB lebih cocok untuk data situasi kritis yang membutuhkan menyisipkan sering dan update.MyISAM,  di  sisi  lain, melakukan yang lebih baik dengan aplikasi yang  tidak cukup bergantung pada integritas data dan kebanyakan hanya memilih dan menampilkan data.




HEAP
Heap adalah sebuah binary tree dengan ketentuan sebagai berikut :
1. Tree harus complete binary tree
     - Semua level tree mempunyai simpul maksimum kecuali pada level terakhir.
     - Pada level terakhir, node tersusun dari kiri ke kanan tanpa ada yang dilewati.
2. Perbandingan nilai suatu node dengan nilai node child-nya mempunyai ketentuan 
    berdasarkan jenis heap, diantaranya : 
     - Max Heap mempunyai ketentuan bahwa nilai suatu node lebih besar atau sama dengan
       ( >= ) dari nilai childnya.
     - Min Heap mempunyai ketentuan bahwa nilai suatu node lebih kecil atau sama dengan
       ( <= ) dari nilai childnya.


Contoh penggunaan heap adalah pada persoalan yang mempertahankan antrian prioritas (priority queue). Dalam antrian prioritas, elemen yang dihapus adalah elemen yang mempunyai prioritas terbesar (atau terkecil, tergantung keperluan), dan elemen inilah yang selalu terletak di akar (root). Suatu heap dapat sewaktu-waktu berubah baik itu penambahan elemen (insert) dan penghapusan elemen (delete).


Ada beberapa operasi yang dapat terjadi di sebuah heap, yaitu :
1. Reorganisasi Heap (mengatur ulang heap).
2. Membantuk Heap (mengatur binary tree agar menjadi heap)
3. Penyisipan Heap (menyisipkan node baru)
4. Penghapusan Heap (menghapus node root)
5. Pengurutan Heap (Heap sort)
Comments
0 Comments

0 komentar:

Posting Komentar