Sekarang saya akan sedikit memberi penjelasan mengenai jenis2 table dalam MySQL tapi kadang jenis2 ini belon tentu ada tergantung web server yang junker2... gunakan ane sendiri make app serv...klo mo ngecek melalui commnd prompt gini carana ketik mysql di run setelah masuk mysql> select engine from engines;
setelah itu pasti muncul jenis2na intina gini pada pada mysql versi 5 keatas. Secara garis besar, Tabel MySQL dibedakan menjadi dua jenis, yaitu Transaction Safe dan Non-Transaction Safe.
* Transaction Safe merupakan tabel yang mendukung transaksi. Dalam
proses transaksi kita dapat memperkecil terjadinya kesalahan dalam
pemrosesan data. Jenis tabel ini yang ane pake dalam penerapan aktifitas
koding. Namun sayang, tabel jenis ini performa dalam hal kecepatan
lebih lambat daripada jenis tabel non-transaction safe karena
membutuhkan resource yang lebih banyak. Mungkin tabel jenis ini lebih
memprioritaskan kapasitas/data daripada kecepatan.
* Non Transaction
Safe merupakan tabel yang tidak mendukung adanya transaksi. Garis
besarnya jenis tabel ini kebalikan dari Transaction Safe. Tabel jenis
ini mempunyai kelebihan dalam hal kecepatan. Namun tidak ada toleransi
dalam kesalahan pemrosesan data. Misalkan ada kesalahan dalam update
data, maka data tersebut tidak dapat dikembalikan. Tabel berjenis
MyISAM, MEMORY, ARCHIVE termasuk dalam jenis ini.
Dibawah ini adalah jenis-jenis tabel yang terdapat pada MySQL. Baik itu Transaction Safe maupun Non-Transaction Safe :
1.
EXAMPLE : Tabel jenis ini disediakan oleh MySQL tanpa didukung feature
apapun. tabel jenis ini hanya digunakan sebagai contoh untuk memulai
membuat sebuah tabel. Ketika kita membuat tabel dengan jenis ini,
filenya tetap akan disimpan pada database direktori dengan ekstensi
.frm. Tidak ada data yang akan disimpan dalam direktori database. Kita
juga tidak dapat melakukan penyimpanan data dalam tabel jenis ini.
2.
CSV : Tabel jenis ini menyimpan data pada text file dengan pemisah
koma. Ketika kita membuat tabel dengan jenis ini, filenya akan disimpan
pada database direktori dengan ekstensi frm, dan data akan disimpan
dengan ekstensi .CVS berdasarkan nama tabel yang dibuat.
3.
MyISAM : Tabel jenis ini diperuntukkan bagi junker2 yang membutuhkan
kecepatan yang tinggi, namun dengan kelemahan tidak ada toleransi
kesalahan dalam pemrosesan data. Adapun kelebihan dari jenis ini adalah
mendukung fasilitas pencarian dengan fungsi full-text dan kemudahan
dalam perbaikan tabel. Data-data MyISAM disimpan dalam direktori
database terdiri atas 3 jenis, yaitu nama_tabel.frm, nama_tabel.myd,
nama_tabel.myi. FRM menyimpan schema tabel, MYD menyimpan data-data, MYI
menyimpan data-data index. Tabel jenis ini mendukung jumlah index
sampai dengan 64 buah index.
4. BLACKHOLE : Inilah salah satu
jenis tabel yang paling unik, karena sewaktu kita membuat tabel dengan
jenis ini dan kita menambahkan data, maka tabel blackhole tidak akan
menyimpannya namun melemparkannya. Pada prakteknya tabel blackhole
sering dipakai pada seseorang yang tidak menginginkan menyimpan sebuah
data pada tabel namun file log. File Log sangat bermanfaat untuk proses
replikasi replikasi. Kita dapat mengatur agar master tidak menerima data
apapun, namun berguna untuk meneruskan data pada Slave sehingga hanya
Slave yang memiliki data.
5. MRG_MYISAM : Tabel jenis ini juga
merupakan jenis tabel yang unik. Jenis ini merupakan gabungan dari
beberapa tabel MyISAM. Penggabungan ini dimaksudkan untuk mempermudah
pencarian dan manajemen data terhadap beberapa tabel MyISAM karena hanya
menggunakan sebuah tabel MRG_ISAM saja. Yang perlu diperhatikan ketika
membuat jenis tabel ini adalah, diantara tabel MRG_MyISAM dan tabel
Merge yang merupakan gabungan harus mepunyai kolom2 yang identik. Tabel
ini tidak mempunyai batasan penyimpanan, namun tabel2 MyISAM yang
merupakan gabungannya mempunyai batasan berdasarkan Sistem Operasinya.
Tabel jenis ini seperti InnoDD dalam hal penyimpanan data.
Sebetulnya
tabel jenis ini tidak mempunyai data apapun, ia hanya memiliki link
atau lokasi kedalam kedua tabel MyISAM yang telah digabung. Ketika kita
menghapus data dalam tabel MRG_MyISAM, maka data pada lokasi aslinya
turut terhapus. Perlu diperhatikan, kita tidak diperkenankan untuk
menggunakan perintah ALTER TABLE pada jenis tabel ini karena jika
demikian, maka link atau lokasi pada tabel penggabungan akan hilang.
6.
InnoDB : Cocok digunakan sebagai komputer server yang memproses data
yang sangat besar. Untuk kecepatan, InnoDB memang kalah dibanding MyISAM
namun dalam hal pemrosesan data tabel ini jauh lebih baik. Tabel ini
menyimpan data2 yang sedang diproses dalam memori komputer untuk
mempercepat proses MySQL. InnoDB tidak mempunyai batasan penyimpanan
data meskipun file system OS mempunyai batasan penyimpanan. InnoDB juga
mempunyai kriteria Row level Locking yang memungkinkan penguncian tabel
hanya untuk data-data tertentu saja. Penguncian ini hanya akan dilakukan
ketika data tersebut sedang digunakan sehingga tidak tersedia bagi user
yang lain.
Tabel InnoDB mempunyai file Log tersendiri dan
terdiri dari beberapa buah. Kita dapat mementukan jumlah file log yang
digunakan melalui konfigurasi innodb_log_files_in_group. InnoDB
mendukung penggunaan ConstraintFOREIGN KEY sehingga memudahkan
pendeklarasian foreign key. Selain itu juga mendukung penggunaan keyword
ON DELETE dan ON UPDATE. Operasi yang dapat digunakan terhadap tabel
foreign key antara lain :
- CASCADE
Jika ada perubahan
maupun penghapusan pada tabel Primary Key, maka MySQL juga akan turut
menghapus atau mengubah data pada tabel Foreign Key.
- RESTRICT
Jika
ada perubahan maupun penghapusan pada tabel Primary Key, maka MySQL
tidak akan menghapus atau mengubah data yang sama pada tabel Foreign
Key.
- SET NULL
Jika ada perubahan maupun penghapusan pada tabel Primary Key, maka MySQL mengosongkan data yang sama pada tabel Foreign Key.
- NO ACTION
Keyword
ini berguna untuk menolak perubahan atau penghapusan data pada tabel
Primary Key jika terdapat data yang sama pada tabel Foreign Key. Bila
pada tabel Foreign Key tidak sudah tidak ada yang sama, maka akan
diijinkan untuk melakukan penghapusan atau perubahan data pada tabel
Primary.
7. ARCHIVE : Tabel jenis ini adalah jenis tabel yang
dipadatkan. Tabel ini diperuntukkan bagi yang menyimpan data-data yang
besar karena penyimpanan dari tabel ini sangat kecil. Kita dapat
menggunakan perintahSELECT dan INSERT namun kita tidak dapat menggunakan
perintah DELETE,UPDATE maupun REPLACE karena tabel ini hanya digunakan
untuk memasukkan dan membaca saja. Tabel ini juga tidak mendukung klausa
ORDER BY dalam perintah SELECT.
8. MEMORY : Pemyimpan data pada
jenis tabel ini tersimpan secara sementara dalam memory komputer. Ketika
Server komputer dimatikan, secara otomatis data akan dihapus dari
memori komputer. Tabel jenis ini cocok digunakan untuk pembuatan tabel
sebelum membuat tabel aslinya. Sudah pasti tabel ini bekerja lebih cepat
daripada tabel lainnya karena bekerja dalam memori komputer. Besar
penyimpanan tabel ini pun dialokasikan dengan ukuran yang lebih kecil
mengingat penyimpanannya ada pada memori dan bersifat statik.
9.
FEDERATED : Tabel ini digunakan untuk mengakses data pada tabel lainnya.
Tabel jenis ini tidak mempunyai data apapun seperti halnya tabel
MRG_MyISAM. Tabel ini biasanya digunakan untuk mengakses tabel MySQL
Remote. Tabel jenis ini juga tidak mendukung transaksi dan perintah
DDL(Data Definition Language) dan tidak bisa mengetahui apabila telah
terjadi perubahan skema tabel pada tabel remote yang diakses.
Mungkin
pengertian bisa berguna buat agan2 yang ngen mempelajari lebih dalam
ttg DBMS bagaimana melakukan sebuah relasi dalam tabel, membedakan mana
jenis table yang harus kita gunakan dalam membuat sebuah web...Saya
sendiri masih belajar n ingin terus memperdalam ttg dunia beginian (Web
Programming