Selasa, 18 Januari 2011

InnoDB , MyISAM , dan Heap

InnoDB

InnoDB menghasilkan transaction-safe table. Maksud dari transaction safe table adalah tabel yang memiliki kemampuan commit, rollback, crash recovery. Namun dengan kemampuan yang tersebut, tentu saja ada overhead yang dimiliki.Kita dapat mengaktifkan atau menon-aktifkan engine bertipe ini.
InnoDB membuat mesin database MySQL adalah produk langsung dari fleksibilitas teknologi, teknologi ini adalah MySQL + + API.Dalam penggunaan MySQL, Anda menghadapi tantangan hampir dari setiap ISAM dan mesin database MyISAM tidak mendukung transaksi tidak mendukung kunci asing.Meskipun lebih lambat dari banyak ISAM dan mesin MyISAM, tapi InnoDB dan BDB termasuk pemrosesan transaksi dan dukungan kunci asing, kedua bukan dua pertama mesin.Seperti disebutkan sebelumnya, jika Anda membutuhkan fitur-fitur dalam desain salah satu atau keduanya, maka Anda akan dipaksa untuk menggunakan dua mesin satu demi satu.
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.


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 :
  1. MyISAM static. Jenis ini digunakan ketika semua kolom dalam tabel didefinisikan dengan ukuran yang pasti (fixed). Dengan kata lain, tidak ada kolom yang memiliki tipe seperti VARCHAR, TEXT dan BLOB. Karena sifatnya yang fixed, maka jenis ini akan lebih cepat, aman dan stabil.
  2. MyISAM dymanic. Jenis ini digunakan ketika terdapat kolom dengan tipe yang dinamis, seperti tipe kolom VARCHAR. Keuntungan utama dari jenis ini adalah ukuran yang dinamis. Jadi sifatnya lebih efektif karena ukuran data (file) menyesuaikan isi dari masing-masing kolom (field).
  3. MyISAM Compressed. Kedua jenis MyISAM, static dan dynamic dapat dikompresi menjadi satu jenis yaitu MyISAM Compressed dengan perintah myisamchk. Tentunya hasilnya lebih kecil dari segi ukuran. Tabel yang terkompresi tidak dapat dikenakan operasi seperti INSERT, UPDATE dan DELETE.
MyISAM mengatur non-transactional tabel. Engine ini dapat melakukan penyimpanan dan pengambilan data dengan cepat. MyISAM adalah default storage engine pada MySQL.
MyISAM menekankan operasi cepat membaca, yang mungkin mengapa MySQL sangat disukai oleh pengembangan Web utama: pengembangan Web dalam melakukan operasi Anda adalah data dalam jumlah besar operasi pembacaan.Oleh karena itu, kebanyakan web penyedia hosting dan penyedia platform Internet (Internet Presence Provider, IPP) hanya memungkinkan penggunaan format MyISAM.
MyISAM memiliki beberapa karakteristik sebagai berikut:
· Seperti panjang key maksimum adalah 1000 bytes, maksimum jumlah kolom per indeks adalah 16.
· Nilai numerik disimpan pada high byte sehingga dapat melakukan kompresi secara lebih baik, dapat melakukan AUTO_INCREMENT, dan masih banyak yang lainnya, yang tidak akan kita bahas satu per satu di sini.
· Dapat menaruh data file dan index file dalam direktori yang berbeda untuk meningkatkan kecepatan akses.
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.
MyISAM vs InnoDB
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 kunci tabel.
  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.


MEMORY (Heap)

menghasilkan in-memory table. Storage engine MERGE dapat mengatur beberapa tabel MyISAM sebagai sebuah tabel tunggal. Storage engine MEMORY dan MERGE khusus untuk mengatur non-transactional tabel. Memory storage engine ini dahulu dikenal dengan nama Heap engine.Memori membuat tabel dengan isinya disimpan di memori.Setiap tabel memori memiliki satu buah file yang akan disimpan dalam disk, ekstensinya adalah .frm.
HEAP untuk memungkinkan hanya tinggal sementara dalam bentuk memori.Berada di memori untuk HEAP lebih cepat dari ISAM dan MyISAM, tapi data yang mengelola tidak stabil, dan jika tidak untuk menyimpan sebelum shutdown, semua data akan hilang.Row dalam data dihapus ketika, HEAP tidak akan membuang banyak ruang.HEAP formulir Anda perlu menggunakan ekspresi SELECT untuk memilih dan memanipulasi data yang sangat berguna.Ingat, setelah formulir yang digunakan untuk menghapus bentuk.Mari saya ulangi: setelah Anda kehabisan formulir, jangan lupa untuk menghapus form.

MEMORY memiliki beberapa karakteristik sebagai berikut:
· Menggunakan 100% dynamic hashing untuk operasi insert, sehingga lebih hemat karena tidak perlu tempat tambahan untuk menyimpan key.
· Kita dapat memiliki non-unique keys di tabel MEMORY.
· Dapat memiliki NULL values, menggunakan panjang yang tetap dalam hal penyimpanan, kolom tidak bisa mengandung BLOB atau TEXT.

0 komentar:

Posting Komentar