Itu benar-benar pesan informasional.
Kemungkinan, Anda sedang melakukan OPTIMASI pada tabel InnoDB (tabel menggunakan mesin penyimpanan InnoDB, bukan mesin penyimpanan MyISAM ).
InnoDB tidak mendukung OPTIMASI seperti yang dilakukan MyISAM. Itu melakukan sesuatu yang berbeda. Ini membuat tabel kosong, dan menyalin semua baris dari tabel yang ada ke dalamnya, dan pada dasarnya menghapus tabel lama dan mengganti nama tabel baru, lalu menjalankan ANALISIS untuk mengumpulkan statistik. Itulah yang paling dekat yang bisa dilakukan InnoDB untuk melakukan OPTIMASI.
Pesan yang Anda dapatkan pada dasarnya adalah server MySQL yang mengulangi apa yang dikatakan mesin penyimpanan InnoDB kepada server MySQL:
Tabel tidak mendukung pengoptimalan adalah mesin penyimpanan InnoDB mengatakan ...
"Saya (mesin penyimpanan InnoDB) tidak melakukan operasi OPTIMASI seperti yang dilakukan teman saya (mesin penyimpanan MyISAM)."
"melakukan membuat ulang + menganalisis" adalah mesin penyimpanan InnoDB mengatakan ...
"Saya telah memutuskan untuk melakukan serangkaian operasi berbeda yang akan mencapai hasil yang setara."
OPTIMIZE TABLE
berfungsi dengan baik dengan mesin InnoDB menurut artikel dukungan resmi: http://dev.mysql.com/doc/refman/5.5/en/optimize-table.htmlAnda akan melihat bahwa mengoptimalkan tabel InnoDB akan membangun kembali struktur tabel dan memperbarui statistik indeks (seperti
ALTER TABLE
).Ingatlah bahwa pesan ini dapat berupa sebutan informasional saja dan informasi yang paling penting adalah status kueri Anda: OK!
mysql> OPTIMIZE TABLE foo; +----------+----------+----------+-------------------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +----------+----------+----------+-------------------------------------------------------------------+ | test.foo | optimize | note | Table does not support optimize, doing recreate + analyze instead | | test.foo | optimize | status | OK | +----------+----------+----------+-------------------------------------------------------------------+
sumber
Pilihan terbaik adalah membuat tabel baru dengan properti yang sama
CREATE TABLE <NEW.NAME.TABLE> LIKE <TABLE.CRASHED>; INSERT INTO <NEW.NAME.TABLE> SELECT * FROM <TABLE.CRASHED>;
Ubah nama NEW.NAME.TABLE dan TABLE.CRASH
RENAME TABLE <TABLE.CRASHED> TO <TABLE.CRASHED.BACKUP>; RENAME TABLE <NEW.NAME.TABLE> TO <TABLE.CRASHED>;
Setelah berfungsi dengan baik, hapus
DROP TABLE <TABLE.CRASHED.BACKUP>;
sumber
Opsi yang lebih baik adalah membuat tabel baru, salin baris ke tabel tujuan, lepaskan tabel aktual dan ganti nama tabel yang baru dibuat. Metode ini bagus untuk tabel kecil,
sumber