Ya, Anda dapat beralih ke MyISAM. Tapi itu belum tentu ide yang bagus:
- MyISAM tidak mendukung transaksi
- Tabel MyISAM sering membutuhkan
REPAIR
setelah mogok
Tabel InnoDB dapat menangani lebih dari 8KB per baris. Rupanya Anda mengalami masalah dengan memiliki selusin atau lebih kolom TEXT/BLOB? Paling banyak 767 byte kolom disimpan di bagian utama baris; sisanya ditempatkan di blok terpisah.
Saya pikir satu ROW_FORMAT
akan menempatkan semua kolom besar di blok terpisah, hanya menyisakan 20 byte untuk mengarahkannya.
Pendekatan lain untuk baris lebar adalah dengan melakukan "partisi vertikal". Yaitu, buat tabel (atau tabel) lain dengan PRIMARY KEY
yang cocok dan beberapa kolom besar. Sangat berguna untuk memindahkan kolom yang jarang penduduknya ke tabel seperti itu, kemudian memiliki lebih sedikit baris dalam tabel itu, dan menggunakan LEFT JOIN
untuk mengambil datanya. Juga, jika Anda memiliki beberapa kolom yang jarang Anda perlukan untuk SELECT
, maka itu adalah kandidat yang baik untuk dipindahkan -- tidak ada JOIN
dibutuhkan saat Anda tidak membutuhkan kolom tersebut.