Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 14231|Jawab: 1

[Sumber] Perbedaan antara engine=innodb dan engine=myisam di mysql

[Salin tautan]
Diposting pada 16/07/2017 11.04.57 | | |
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.




Mantan:Atribut jenis bidang tabel MySQL dijelaskan secara rinci
Depan:alat akses database php Medoo
 Tuan tanah| Diposting pada 16/07/2017 11.09.29 |
//更改引擎
mengubah tabel tabel nama engine = MyISAM;

Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com