Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Membangun kembali indeks di InnoDB

Sudahkah Anda melakukan SHOW TABLE STATUS sebelum dan sesudah drop+rebuild Anda? Apakah Index_length banyak berubah? Mungkin bahkan bukan dengan dua faktor.

Saya hampir tidak pernah merekomendasikan membangun kembali apa pun di InnoDB. Itu tidak layak. Pengecualian mencolok ada hubungannya dengan FULLTEXT indeks.

Ya, ALTER dummy akan membangun kembali indeks. Begitu juga dengan OPTIMIZE TABLE . Keduanya akan "mendefrag" (sampai batas tertentu) indeks sekunder Btree dan Btree utama (yang berisi data dan PRIMARY KEY ).

Statistiknya bisa banyak lebih murah diperbarui hanya dengan menggunakan ANALYZE TABLE . Bahkan itu tidak sering dibutuhkan. 5.6 memiliki cara yang jauh lebih baik untuk mempertahankan statistik.

Jika Anda belum menggunakan innodb_file_per_table=ON , saya sarankan Anda mengaturnya (SET GLOBAL ... ) dan lakukan ALTER TABLE tbl ENGINE=InnoDB; untuk terakhir kalinya.

Perubahan online

Untuk mengubah ft_* , Anda perlu membangun kembali file index. Ini menyiratkan ALTER (atau OPTIMIZE , yang diimplementasikan sebagai ALTER ). Versi MySQL yang lebih baru memiliki ALGORITHM=INPLACE yang membuat ALTER memiliki sedikit atau tidak berdampak pada sistem yang sedang berjalan. Tapi, ada batasannya. Periksa manualnya.

Alternatif untuk ALTER non-INPLACE adalah pt-query-digest atau gh-ost . Lihat apakah salah satu dari mereka akan bekerja untuk kasus Anda.

Singkat dari "membangun kembali tabel", Anda dapat DROP INDEX ... dan ADD INDEX ... . Sekali lagi, saya tidak tahu apakah ini berfungsi untuk indeks FT "di tempat". Bagaimanapun, Anda akan kehilangan penggunaan indeks itu selama proses tersebut.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Indeks optimal untuk antar kueri

  2. Bagaimana cara menampilkan baris tabel mysql sebagai kolom?

  3. Bagaimana cara mendapatkan Sum dari dua tabel?

  4. bagaimana cara mengimpor file csv ke mysql dari aplikasi hibernate+spring?

  5. Php - Instalasi PHP Anda tampaknya kehilangan ekstensi MySQL yang diperlukan oleh WordPress