GNU/Linux >> Belajar Linux >  >> Cent OS

MyISAM vs. InnoDB:Perbandingan

Pendahuluan

Memilih mesin penyimpanan yang tepat adalah keputusan strategis penting yang berdampak pada pengembangan di masa depan. Bergantung pada kasus penggunaan Anda, putuskan antara dua mesin penyimpanan utama untuk MySQL – MyISAM atau InnoDB .

Dalam artikel ini, Anda akan mempelajari perbedaan utama antara mesin penyimpanan MyISAM dan InnoDB, cara memeriksa mesin penyimpanan yang Anda gunakan dan cara mengonversinya.

Prasyarat

  • Akses ke terminal /baris perintah
  • Database MySQL yang berfungsi
  • phpMyAdmin terpasang

Apa itu MyISAM dan InnoDB

MyISAM dan InnoDB adalah mesin penyimpanan MySQL. Mesin penyimpanan adalah komponen sistem manajemen basis data yang digunakan untuk memanipulasi data dari dalam basis data.

MyISAM

MyISAM adalah singkatan dari Indexed Sequential Access Method. Itu adalah mesin penyimpanan default untuk MySQL hingga Desember 2009. Dengan dirilisnya MySQL 5.5, MyISAM diganti dengan InnoDB.

MyISAM didasarkan pada algoritma ISAM yang menampilkan informasi dari kumpulan data besar dengan cepat. Ini memiliki jejak data yang kecil dan paling cocok untuk pergudangan data dan aplikasi web.

InnoDB

InnoDB telah menjadi mesin penyimpanan default untuk MySQL sejak rilis MySQL 5.5. Ini paling cocok untuk database besar yang menyimpan data relasional.

InnoDB berfokus pada keandalan dan kinerja tinggi, menjadikannya bagus untuk sistem manajemen konten. Salah satu penggunaan InnoDB yang paling terkenal adalah perangkat lunak MediaWiki yang mendukung Wikipedia.

Perbedaan Utama MyISAM vs. InnoDB

Mari kita lihat perbedaan utama antara MyISAM dan InnoDB.

Fitur MyISAM InnoDB
Jenis Tidak Transaksional Transaksional
Mengunci Penguncian tabel Penguncian tingkat baris
Kunci asing Tidak Ya
Tabel, indeks, dan penyimpanan data Tiga file terpisah (.frm, .myd, dan .myi) Ruang Meja
Dirancang untuk Kecepatan Kinerja
ASAM Tidak Ya

Jenis Mesin Penyimpanan

Ada dua jenis mesin penyimpanan, tergantung pada metode rollback:

  • Non-transaksional – opsi penulisan perlu dibatalkan secara manual.
  • Transaksional – opsi tulis mundur secara otomatis jika tidak selesai.

Ringkasan: MyISAM adalah non-transaksional, sedangkan InnoDB adalah jenis mesin penyimpanan transaksional.

Mengunci

Mengunci di MySQL adalah opsi yang mencegah dua atau lebih pengguna mengubah data secara bersamaan. Pengguna tidak dapat mengubah data saat opsi penguncian diaktifkan. Fitur ini menjaga validitas semua data.

MyISAM menggunakan penguncian tabel sebagai metode penguncian default. Hal ini memungkinkan satu sesi untuk mengubah tabel pada suatu waktu. Tabel selalu dikunci dalam urutan yang sama. Metode penguncian tabel paling cocok untuk database hanya-baca yang tidak memerlukan banyak memori.

Contoh penguncian tabel:

Permintaan Kolom 1 Kolom 2 Kolom 3
Kueri 1 (pembaruan) Menulis Data Data
Kueri 2 (tunggu) Data Data Data
Kueri 3 (tunggu) Data Data Data

InnoDB menggunakan penguncian tingkat baris sebagai metode penguncian default. Ini mendukung beberapa sesi pada baris yang dipilih dengan hanya mengunci baris dalam proses modifikasi. Penguncian baris paling cocok untuk database yang memiliki banyak pengguna. Kerugiannya adalah membutuhkan banyak memori dan membutuhkan lebih banyak waktu untuk query dan memodifikasi data.

Contoh penguncian tingkat baris:

Permintaan Kolom 1 Kolom 2 Kolom 3
Kueri 1 (pembaruan) Menulis Data Data
Kueri 2 (pilih) Membaca Data Membaca
Kueri 3 (pembaruan) Data Menulis Data

Ringkasan: MyISAM menggunakan penguncian tabel, sedangkan InnoDB menggunakan penguncian tingkat baris sebagai metode default.

Kunci Asing

Kunci asing adalah kolom (atau kumpulan kolom) dalam satu tabel yang terhubung dengan kolom (atau kumpulan kolom) di tabel lain. Ini mencegah tindakan yang merusak hubungan antara tabel dan kemungkinan memasukkan data yang tidak valid.

Ringkasan: MyISAM tidak mendukung opsi kunci asing, sedangkan InnoDB mendukung.

Tabel, Indeks, dan Penyimpanan Data

Kedua mesin penyimpanan tersebut berbeda berdasarkan cara mereka menyimpan file.

MyISAM menyimpan tabel, indeks, dan data ke dalam tiga file terpisah:

  • .frm – Format tabel yang berisi struktur tabel atau definisi tabel.
  • .myi – File indeks dengan indeks untuk setiap tabel.
  • .myd – File data yang berisi data setiap tabel.

InnoDB menyimpan struktur tabel di .frm file dan memiliki tablespace tempat ia menyimpan indeks dan data.

Ringkasan: MyISAM menyimpan data dalam tiga file terpisah, sedangkan InnoDB menyimpan data dalam satu file.

Dukungan ACID

ASAM mengacu pada properti transaksi basis data:atomicity , konsistensi , isolasi , dan daya tahan . Ini menjamin bahwa transaksi selesai jika terjadi kesalahan atau kegagalan sistem.

Lihat artikel ACID vs. Base kami untuk mempelajari lebih lanjut tentang model transaksi basis data.

Ringkasan: MyISAM tidak memiliki dukungan ACID, sedangkan InnoDB memiliki kepatuhan penuh terhadap ACID.

Cara Memeriksa Apakah Anda Menggunakan MyISAM atau InnoDB

Menggunakan mesin penyimpanan yang benar sangat penting untuk manipulasi data. Mesin penyimpanan yang salah dapat menyebabkan kesalahan dalam kueri dan mengurangi kecepatan dan kinerja. Oleh karena itu, sangat penting untuk memeriksa apakah MyISAM atau InnoDB disetel sebagai mesin penyimpanan default.

Catatan: Penyetelan kinerja MySQL memerlukan evaluasi banyak faktor. Sebaiknya gunakan InnoDB daripada MyISAM untuk performa terbaik.

Periksa melalui Baris Perintah

Temukan informasi tentang mesin penyimpanan default dengan mengikuti langkah-langkah yang tercantum di bawah ini.

1. Buka terminal dan masuk ke shell MySQL. Kemudian, tampilkan daftar database:

SHOW DATABASES;

2. Cari database pilihan dari daftar dan pilih:

USE database_name;

Terminal menampilkan pesan konfirmasi tentang perubahan basis data.


3. Selanjutnya, gunakan SHOW CREATE TABLE perintah untuk menampilkan informasi tentang tabel dan mesin penyimpanan:

SHOW CREATE TABLE database_name.table_name;

Pada contoh di bawah, output mencantumkan InnoDB sebagai mesin penyimpanan default.

Catatan: Ganti database_name dan table_name dengan nama database dan tabel Anda.

Cek Menggunakan phpMyAdmin

Ada dua cara untuk memeriksa mesin penyimpanan default di phpMyAdmin:

  • Dari daftar tabel.
  • Dengan menjalankan kueri.

Dari Daftar Tabel

Anda dapat menggunakan daftar tabel untuk mengetahui tabel mana yang menggunakan MyISAM atau InnoDB sebagai mesin penyimpanan default.

1. Buka phpMyAdmin dan pilih database yang diinginkan dari daftar.

2. Dalam Daftar tabel , temukan Jenis kolom untuk melihat jenis-jenis storage engine. Dalam contoh kami, Pelanggan tabel menggunakan MyISAM sebagai mesin penyimpanan default.

Menjalankan Kueri

Cara lain untuk menampilkan mesin penyimpanan default adalah dengan menjalankan kueri.

1. Masuk ke phpMyAdmin dan pilih database yang diinginkan dari daftar database.

2. Pilih SQL tab untuk mengakses opsi kueri.

3. Masukkan perintah berikut untuk menampilkan semua tabel menggunakan MyISAM sebagai mesin penyimpanan:

SELECT TABLE_NAME, ENGINE FROM information_schema. TABLES WHERE TABLE_SCHEMA = 'database_name' and ENGINE = 'myISAM'

4. Klik Buka untuk menjalankan kueri.

Catatan: Ganti database_name dengan nama database Anda.

Outputnya menampilkan daftar semua tabel yang berisi mesin penyimpanan MyISAM.

Anda dapat menggunakan perintah yang sama untuk menemukan database menggunakan mesin penyimpanan InnoDB. Ubah kueri dengan mengganti ENGINE = 'myISAM' dengan ENGINE = 'InnoDB' .

Cara Mengonversi MyISAM dan InnoDB

Masalah dapat terjadi jika Anda menggunakan InnoDB dalam proses sehari-hari, sementara tabel yang lebih lama menggunakan MyISAM. Itulah mengapa penting untuk mengetahui cara mengonversi tabel.

Konversi Mesin Penyimpanan melalui Terminal

Jalankan ALTER TABLE perintah di shell MySQL untuk mengonversi mesin penyimpanan dari MyISAM ke InnoDB dan sebaliknya.

  • Untuk mengonversi InnoDB ke MyISAM, jalankan:
ALTER TABLE database_name.table_name ENGINE=MyISAM;
  • Untuk mengonversi MyISAM ke InnoDB, jalankan:
ALTER TABLE database_name.table_name ENGINE=InnoDB;

Terminal mencetak pesan konfirmasi.

Konversi Mesin Penyimpanan Menggunakan phpMyAdmin

Ada dua cara untuk mengonversi mesin penyimpanan di phpMyAdmin:

  • Menggunakan Operasi Tabel menu.
  • Menjalankan kueri.

Menggunakan Menu Operasi

1. Pilih database yang diinginkan dari menu database.

2. Pilih tabel yang ingin Anda ubah mesin penyimpanannya dan pilih Lainnya menu tarik-turun.

3. Klik Operasi untuk mengakses menu.


4. Temukan Mesin Penyimpanan pengaturan di Tabel pilihan dan klik mesin penyimpanan untuk memuat menu tarik-turun yang berisi berbagai mesin penyimpanan. Pilih InnoDB dari daftar dan klik PERGI untuk menyimpan perubahan.

Menjalankan Kueri

1. Akses SQL pusat perintah untuk database pilihan.

2. Jalankan ALTER TABLE perintah di shell MySQL untuk mengonversi mesin penyimpanan.

Untuk mengonversi ke MyISAM, jalankan:

ALTER TABLE table_name ENGINE=MyISAM;

Untuk mengonversi ke InnoDB, jalankan:

ALTER TABLE.table_name ENGINE=InnoDB;

3. Klik tombol BUKA tombol untuk menjalankan kueri.

Anda telah berhasil mengonversi mesin penyimpanan.


Cent OS
  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. MySQL – Mengonversi ke Data Per Tabel untuk InnoDB

  3. Pencadangan Inkremental MySQL - Pencadangan dan Pemulihan Titik Waktu InnoDB dan Basis Data MyIsam

  1. Hadoop vs Spark – Perbandingan Mendetail

  2. Cara Membuat Keyspace di Cassandra

  3. Prometheus vs Zabbix:Perbandingan alat pemantauan jaringan

  1. Tipe Data MySQL

  2. Apa itu Basis Data Multi-Model?

  3. Apa itu Basis Data Dokumen?