Cara memeriksa apakah mysql adalah innodb atau myisam

Saya baru-baru ini perlu menemukan tabel mana di semua database MySQL di server tertentu yang menggunakan INNODB sebagai mesin penyimpanan. Posting singkat ini menunjukkan kueri yang diperlukan untuk melakukan ini

SQL untuk melakukan ini menanyakan INFORMATION_SCHEMA dan adalah sebagai berikut

SELECT table_schema, table_name
FROM INFORMATION_SCHEMA.TABLES
WHERE engine = 'innodb';

table_schema adalah nama databasenya

table_name adalah (jelas) nama tabel

Ini mungkin membutuhkan waktu untuk berjalan terutama jika ada banyak database dan/atau tabel. Beberapa contoh data yang dikembalikan dari kueri di atas terlihat seperti ini di mana ada dua database (test1 dan test2) dengan masing-masing beberapa tabel yang menggunakan mesin penyimpanan INNODB

+-------------------+----------------------------------------+
| table_schema      | table_name                             |
+-------------------+----------------------------------------+
| test1             | sessions                               |
| test1             | users                                  |
| test2             | products                               |
| test2             | categories                             |
+-------------------+----------------------------------------+
4 rows in set (2.08 sec)
_

Dalam posting MySQL saya berikutnya, saya akan melihat bagaimana mesin penyimpanan INNODB secara default menempatkan semua tabel ke dalam satu file bernama ibdata1 dan bagaimana Anda dapat mengubah default untuk memiliki satu file per tabel dengan cara yang sama seperti mesin penyimpanan MyISAM

Salah satu alasan terbesar mengapa situs WordPress skala besar menjadi lambat adalah karena database mereka belum dioptimalkan. Banyak situs lama masih menggunakan mesin penyimpanan MyISAM di database mereka. Selama beberapa tahun terakhir, InnoDB telah terbukti berkinerja lebih baik dan lebih andal. Alasan besar untuk menggunakan InnoDB melalui MyISAM, adalah kurangnya penguncian tingkat tabel penuh. Ini memungkinkan kueri Anda diproses lebih cepat

InnoDB vs MyISAM

Berikut adalah beberapa perbedaan utama antara InnoDB dan MyISAM

  • InnoDB memiliki penguncian tingkat baris. MyISAM hanya memiliki penguncian tingkat tabel penuh
  • InnoDB memiliki apa yang disebut integritas referensial yang melibatkan pendukung kunci asing (RDBMS) dan kendala hubungan, MyISAM tidak (DMBS)
  • InnoDB mendukung transaksi, yang berarti Anda dapat melakukan dan memutar kembali. MyISAM tidak
  • InnoDB lebih andal karena menggunakan log transaksional untuk pemulihan otomatis. MyISAM tidak

Apakah Anda Menggunakan MyISAM atau InnoDB?

Jika Anda menjalankan situs WordPress yang cukup baru, kemungkinan besar Anda sudah menggunakan mesin penyimpanan InnoDB MySQL. Tetapi dengan situs WordPress lama Anda mungkin ingin melakukan pemeriksaan cepat. Beberapa situs bahkan mungkin telah menggabungkan dan mencocokkan tabel MyISAM dan InnoDB, di mana Anda dapat melihat peningkatan dengan mengonversi semuanya. Ikuti langkah-langkah sederhana di bawah ini untuk memeriksa

Langkah 1

Masuk ke phpMyAdmin dan klik ke database mySQL Anda

Langkah 2

Lakukan pemindaian cepat atau urutkan kolom "Jenis" dan Anda dapat melihat jenis Mesin Penyimpanan mana yang digunakan tabel Anda. Dalam contoh di bawah ini, Anda dapat melihat bahwa dua tabel masih menggunakan MyISAM

Cara memeriksa apakah mysql adalah innodb atau myisam
Temukan tabel MyISAM

Alternatifnya, Anda bisa menjalankan kueri untuk melihat apakah ada tabel myISAM. Ganti 'database' dengan nama database Anda

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

Konversikan MyISAM ke InnoDB dengan phpMyAdmin

Anda dapat mengonversi MyISAM ke InnoDB dengan cukup mudah. Contoh di bawah ini menggunakan tabel wp_comments. Cukup jalankan perintah ALTER untuk mengubahnya menjadi mesin penyimpanan InnoDB. Catatan. Kami selalu menyarankan untuk mencadangkan database MySQL Anda sebelum menjalankan operasi apa pun di dalamnya

ALTER TABLE wp_comments ENGINE=InnoDB;

Pastikan Anda menjalankan MySQL 5. 6. 4 atau lebih tinggi jika tidak, Anda mungkin mengalami masalah di mana pengindeksan teks lengkap belum didukung oleh InnoDB. Jika Anda adalah klien Kinsta, Anda tidak perlu khawatir tentang hal ini

Atau, Anda juga dapat mengonversinya secara manual dengan phpMyAdmin. Cukup klik pada tabel myISAM, klik tab "Operasi", dan ubah mesin penyimpanan

Cara memeriksa apakah mysql adalah innodb atau myisam
Konversikan MyISAM ke InnoDB

Konversikan MyISAM ke InnoDB dengan WP-CLI

WP-CLI adalah alat baris perintah bagi pengembang untuk mengelola tugas-tugas umum (dan tidak begitu umum) dari instalasi WordPress. Lihat artikel ini tentang cara mengonversi MyISAM ke InnoDB dengan WP-CLI


Dapatkan semua aplikasi, database, dan situs WordPress Anda secara online dan dalam satu atap. Platform cloud kami yang penuh fitur dan berkinerja tinggi mencakup

  • Pengaturan dan pengelolaan yang mudah di dasbor MyKinsta
  • Dukungan pakar 24/7
  • Perangkat keras dan jaringan Google Cloud Platform terbaik, didukung oleh Kubernetes untuk skalabilitas maksimum
  • Integrasi Cloudflare tingkat perusahaan untuk kecepatan dan keamanan
  • Jangkauan audiens global dengan hingga 35 pusat data dan 275+ PoP di seluruh dunia

Uji sendiri dengan diskon $20 untuk bulan pertama Hosting Aplikasi atau Hosting Basis Data. Jelajahi paket kami atau hubungi bagian penjualan untuk menemukan yang paling cocok untuk Anda

Bagaimana saya tahu jika database MySQL saya adalah InnoDB?

Untuk menentukan apakah server Anda mendukung InnoDB. .
Keluarkan pernyataan SHOW ENGINES untuk melihat mesin penyimpanan MySQL yang tersedia. .
Jika InnoDB tidak ada, Anda memiliki biner mysqld yang dikompilasi tanpa dukungan InnoDB dan Anda perlu mendapatkan yang lain

Bagaimana saya tahu mesin apa yang digunakan MySQL?

Cari DEFAULT di kolom DUKUNGAN. mysql> MESIN TAMPILKAN ; . meja MESIN.

Bagaimana cara memeriksa tipe database di MySQL?

Anda bisa mendapatkan tipe data kolom tabel MySQL dengan bantuan “information_schema. kolom”. PILIH DATA_TYPE dari INFORMATION_SCHEMA. KOLOM dengan table_schema = 'yourDatabaseName' dan table_name = 'yourTableName' .

Apa perbedaan antara MyISAM dan InnoDB di MySQL?

MyISAM adalah jenis penyimpanan non-transaksional, dan opsi tulis apa pun harus dikembalikan secara manual (jika perlu). InnoDB adalah jenis penyimpanan transaksi yang secara otomatis mengembalikan penulisan jika belum selesai