1/ISAM
ISAM adalah pendekatan yang terdefinisi dengan baik dan teruji waktu untuk manajemen tabel data yang dirancang dengan database yang dikueri lebih sering daripada diperbarui. Akibatnya, ISAM melakukan pembacaan dengan cepat dan tidak memakan banyak memori dan sumber daya penyimpanan. Dua kelemahan utama ISAM adalah tidak mendukung pemrosesan transaksi dan tidak toleran terhadap kesalahan: jika hard drive Anda mogok, maka file data tidak dapat dipulihkan. Jika Anda menggunakan ISAM untuk aplikasi misi-kritis, Anda harus selalu mencadangkan semua data real-time Anda, dan MySQL dapat mendukung aplikasi cadangan tersebut berkat fitur replikasinya.
2/InnoDB
Ini menyediakan fungsi kemampuan kontrol transaksi, yang memastikan bahwa serangkaian perintah berhasil dieksekusi, atau ketika terjadi kesalahan perintah, hasil dari semua perintah digulirkan kembali, dapat dibayangkan bahwa kemampuan kontrol transaksi sangat penting dalam e-banking. Dukungan untuk COMMIT, ROLLBACK, dan fitur transaksi lainnya. Versi terbaru Mysql sudah berencana untuk menghapus dukungan untuk BDB demi InnoDB.
MyIASM adalah versi baru tabel IASM dengan ekstensi berikut: Portabilitas di tingkat biner. Indeks kolom NULL. Ada lebih sedikit fragmen untuk baris variabel daripada tabel ISAM. Dukungan untuk file besar. Kompresi indeks yang lebih baik. Apakah lebih baik memiliki distribusi statistik? Pemrosesan auto_increment yang lebih baik dan lebih cepat.
Berikut adalah beberapa detail dan perbedaan implementasi spesifik:
1. InnoDB tidak mendukung indeks jenis FULLTEXT. 2. Tabel tidak disimpan di InnoDB baris tertentu, yaitu, jalankan select count(*) dari , InnoDB memindai seluruh tabel untuk menghitung berapa banyak baris yang ada, tetapi MyISAM hanya membacakan baris yang disimpan. Perhatikan bahwa ketika pernyataan count(*) berisi di mana kondisi, pengoperasian kedua tabel sama. 3. Untuk bidang jenis AUTO_INCREMENT, indeks dengan hanya bidang itu harus disertakan dalam InnoDB, tetapi dalam tabel MyISAM, dimungkinkan untuk membuat indeks federasi dengan bidang lain. 4. HAPUS FROM tabel, InnoDB tidak membuat ulang tabel, tetapi menghapusnya baris demi baris. 5. MEMUAT TABEL DARI Operasi MASTER tidak berfungsi untuk InnoDB, solusinya adalah mengubah tabel InnoDB ke tabel MyISAM terlebih dahulu, mengimpor data, lalu mengubahnya ke tabel InnoDB, tetapi tidak berlaku untuk tabel yang menggunakan fitur InnoDB tambahan (seperti kunci asing).
Selain itu, kunci baris tabel InnoDB tidak mutlak, jika MySQL tidak dapat menentukan cakupan yang akan dipindai saat mengeksekusi pernyataan SQL, tabel InnoDB juga akan mengunci seluruh tabel, seperti update set tabel num=1 di mana nama seperti " a%"
Tidak ada tabel yang mahakuasa, hanya dengan memilih jenis tabel yang sesuai untuk jenis bisnis kita dapat memaksimalkan keunggulan kinerja MySQL.
MySQL Saat Administrator membuat database, tabel default ke jenis InnoDB.
InnoDB,MyISAM Apa perbedaan antara kedua jenis tersebut: Tipe MyISAM tidak mendukung pemrosesan lanjutan seperti pemrosesan transaksi, sedangkan tipe InnoDB mendukung pemrosesan lanjutan. Tabel tipe MyISAM menekankan kinerja, yang berkinerja beberapa derajat lebih cepat daripada tipe InnoDB, tetapi tidak memberikan dukungan transaksional, sedangkan InnoDB menyediakan fitur database lanjutan seperti dukungan transaksional, kunci asing, dll.
File data biner tipe MyISAM dapat dimigrasikan ke berbagai sistem operasi. Artinya, dapat disalin langsung dari sistem Windows ke sistem linux.
Ubah jenis mesin tabel:
MENGUBAH TABLE tablename ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Metode Akses Berurutan Ini adalah metode standar untuk menyimpan catatan dan file. Dibandingkan dengan mesin penyimpanan lainnya, MyISAM memiliki sebagian besar alat untuk memeriksa dan memperbaiki meja. Tabel MyISAM dapat dikompresi, dan mendukung pencarian teks lengkap. Mereka tidak aman secara transaksional dan tidak mendukung kunci asing. Jika sesuatu digulung kembali, itu akan menyebabkan rollback yang tidak lengkap dan tidak atomik. Jika sejumlah besar eksekusi dilakukan TheSELECT, MyISAM adalah pilihan yang lebih baik.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
Untuk jenis InnoDB yang mendukung sesuatu, alasan utama yang memengaruhi kecepatan adalah bahwa pengaturan default AUTOCOMMIT diaktifkan dan program tidak secara eksplisit memanggil BEGIN Mulai transaksi, menghasilkan penerapan otomatis untuk setiap penyisipan, yang secara serius memengaruhi kecepatan. Anda dapat memanggil start sebelum SQL dieksekusi, dan beberapa SQL membentuk satu hal (bahkan jika autocommit mencapai juga dapat dihidupkan), yang akan sangat meningkatkan kinerja.
1. Lihat informasi tabel, termasuk jenis mesin yang digunakan, pengkodean karakter, struktur tabel, dll
Gunakan perintah ini
MySQL> tampilkan buat tabel t1; --t1 adalah nama tabel
2. Perintah berikut dapat dijalankan untuk mengalihkan tabel non-transaksional ke transaksi (data tidak hilang), tabel innodb lebih aman daripada tabel myisam: Ubah tabel T1 jenis=innodb; --t1 adalah nama tabel
3. Tabel innodb tidak dapat table_name dengan perintah tabel perbaikan dan myisamchk -r Tetapi Anda dapat menggunakan tabel periksa t1, dan database mysqlcheck [OPTIONS] [tabel]
4. Parameter berikut telah ditambahkan ke baris perintah untuk memulai database mysql untuk membuat semua tabel data mysql yang baru dirilis secara default menggunakan transaksi ( Ini hanya memengaruhi pernyataan create. ) --default-table-type=InnoDB
5. Mengubah sementara jenis tabel default dapat dilakukan dengan: atur table_type=InnoDB;
MyISAM Keuntungan: kecepatan cepat, lebih sedikit ruang disk yang ditempati; Penggunaan disk database atau tabel dapat ditemukan baik dengan memeriksa ukuran file (folder) yang sesuai oleh sistem operasi atau dengan menggunakan pernyataan SQL TAMPILKAN STATUS TABEL Kekurangan: Tidak ada mekanisme integritas data, yaitu, tidak ada dukungan untuk transaksi dan kunci asing
InnoDB Keuntungan: Mendukung transaksi dan kunci asing, dan mekanisme integritas data yang lengkap. Anda dapat menggunakan TAMPILKAN STATUS TABEL untuk memeriksa okupansi disk pustaka atau tabel Kekurangan: kecepatan ultra-lambat, ruang disk besar ditempati; Semua pustaka disimpan dalam satu (biasanya) atau beberapa file, dan sistem operasi tidak dapat mengetahui berapa banyak ruang yang dimiliki pustaka atau tabel
BDB Keuntungan: Mendukung transaksi, tidak mendukung kunci asing, karena berdasarkan dukungan transaksi, kunci asing dapat diimplementasikan secara tidak langsung di sisi klien database (yang mungkin merupakan sisi server pelanggan akhir, seperti PHP), sehingga integritas data tetap terjamin; Kekurangan: kecepatan lambat, penggunaan disk tinggi; Anda tidak dapat mengkueri hunian ruang database atau tabel melalui SHOW TABLE STATUS. Sistem operasi dapat memahami ukuran folder pustaka yang sesuai atau file tabel yang sesuai, tetapi karena tabel BDB selalu harus menghasilkan file log, dan okupansi disk aktual harus menyertakan file log, ukuran pustaka atau tabel selalu lebih kecil dari ruang aktual yang ditempati oleh sistem operasi.
|