pertanyaan sederhana, tetapi sudah mengganggu saya untuk sementara waktu sekarang ....
apa itu "overhead" di MySQL, dan haruskah saya khawatir?
tidak mengklik "optimalkan tabel" untuk memperbaikinya?
Tampaknya overhead adalah ruang disk sementara yang digunakan database untuk menjalankan beberapa kueri, jadi Anda hanya perlu khawatir jika ini menjadi sangat tinggi.
Anda dapat membandingkan 'Mengoptimalkan tabel' dengan defragmenting hard drive Anda.
Saya mengutip:
Setiap basis data akan, dari waktu ke waktu, memerlukan beberapa bentuk pemeliharaan agar tetap pada tingkat kinerja yang optimal . Membersihkan baris yang dihapus, menyeimbangkan ulang, mengompresi, mengelola jalur indeks, mendefragmentasi, dll. Adalah apa yang dikenal sebagai OPTIMISASI di mysql dan istilah lainnya di basis data lain. Sebagai contoh, IBM DB2 / 400 menyebutnya REORGANISE ANGGOTA FISIK.
Ini seperti mengganti oli di mobil Anda atau menyetel. Anda mungkin berpikir Anda tidak perlu melakukannya, tetapi dengan melakukannya mobil Anda berjalan jauh lebih baik, Anda mendapatkan jarak tempuh yang lebih baik, dll. Mobil yang mendapatkan banyak jarak tempuh memerlukan penyetelan lebih sering. Basis data yang menggunakan banyak membutuhkan hal yang sama. Jika Anda melakukan banyak operasi UPDATE dan / atau HAPUS, dan terutama jika tabel Anda memiliki kolom panjang variabel (VARCHAR, TEXT, dll.), Anda perlu terus memantau.
Jika Anda berbicara tentang hal yang
phpMyAdmin
memanggiloverhead
, maka itu ukuran sebenarnya dari tabel data relatif terhadap ukuran ideal dari datafile yang sama (seolah-olah ketika baru saja dipulihkan dari cadangan).Untuk alasan kinerja,
MySQL
jangan memadatkan file data setelah menghapus atau memperbarui baris.Ini
overhead
buruk untuk pemindaian tabel, yaitu ketika kueri Anda perlu menjalankan lebih dari semua nilai tabel, itu perlu melihat lebih banyak ruang kosong.Anda dapat menyingkirkannya
overhead
dengan menjalankanOPTIMIZE TABLE
yang akan memadatkan tabel dan indeks Anda.sumber
Overhead adalah Data_free dari sebuah tabel, yaitu Jumlah byte yang dialokasikan tetapi tidak digunakan. Kita dapat menemukannya dengan perintah SQL SHOW TABLE STATUS . Ini adalah ruang kosong dalam ukuran yang dialokasikan untuk meja Anda.
sumber
Optimize table bisa sangat bermasalah. Misalnya jika tabel banyak digunakan di situs.
http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
Saya yakin saya sudah mengkonfirmasi perilaku ini. Dan tentu saja itu akan sangat berguna.
sumber