GNU/Linux >> Belajar Linux >  >> Linux

MySQL – Mengonversi ke Data Per Tabel untuk InnoDB

Ikhtisar

Format data InnoDB adalah mesin penyimpanan data, yang memberikan keandalan data dan peningkatan kinerja yang lebih baik dibandingkan format MyISAM yang lebih lama. Pada MySQL 5.5, InnoDB sekarang juga menjadi mesin penyimpanan data default.

Secara default, InnoDB menyimpan semua data tabel di tablespace sistem (/var/lib/mysql/ibdata1 ), menghasilkan satu file monolitik yang besar. Memisahkan ini menjadi pendekatan “per tabel” akan mengurangi kemungkinan korupsi, serta meningkatkan fleksibilitas untuk mentransfer tabel dan menjalankan pencadangan berbasis file.

Petunjuk

Peringatan! Pastikan database Anda telah dicadangkan terlebih dahulu sebelum melakukan perubahan apa pun. Terutama saat Anda membuat perubahan tingkat rendah, ini sangat penting.

  1. Cadangkan basis data Anda. Ini cukup penting sehingga saya mengulanginya lagi!
  2. Edit /etc/my.cnf dan masukkan yang berikut ini di [mysqld] bagian:
    innodb_file_per_table=1
  3. Mulai ulang MySQL:
    /etc/init.d/mysqld restart
  4. Masuk ke MySQL dan jalankan perintah berikut: 
    SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', table_name, ' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE' AND engine = 'InnoDB';
  5. Panggilan ini akan menghasilkan daftar perintah ALTER TABLE, yang kemudian harus Anda jalankan untuk mengonversi ke penyimpanan Per Tabel.
    Catatan: Tindakan ini sebenarnya tidak akan mengosongkan ruang disk yang telah dialokasikan ke /var/lib/mysql/ibdata1

  6. Pantau hasil semua perintah ALTER untuk memastikan perintah tersebut dijalankan dengan benar.

Referensi Dokumentasi MySQL: http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html


Linux
  1. Lingkungan Seperti Shell Untuk Pemrosesan Biner?

  2. Apakah ada alat baris perintah untuk visualisasi dan analisis data?

  3. Komit data dalam wadah mysql

  1. RAID bagi mereka yang menghindarinya

  2. Memperbaiki database MySQL InnoDB

  3. File Pseudo Untuk Data Sementara?

  1. Jatuhkan tabel di MySQL

  2. Mengekstraksi data dari tabel HTML

  3. meningkatkan kecepatan impor mysql