Kami memiliki beberapa insinyur yang meratakan struktur db yang dinormalisasi menjadi tabel sementara untuk keperluan menghasilkan laporan. Kolom ditentukan sebagai TEXT NOT NULL(Saya tahu "mengapa mereka melakukan itu?"; Mari kita asumsikan bahwa kita sedang menangani ini).
Kami menggunakan MySQL 5.1.48 Community RHEL5 dengan plug-in InnoDB 1.0.9 di Linux.
Saat menggunakan MyISAM, kami tidak pernah menemukan batas ukuran tabel kolom maks atau panjang baris maks (selama penyelidikan kami telah mencapai batas kolom maks di 2598 (yang ke-2599 menyebabkan kesalahan 1117). Dengan InnoDB kami mencapai batas. Batas ini memanifestasikan saat membuat tabel (tidak ada penyisipan data) sebagai:
GALAT 1118 (42000) pada baris 1: Ukuran baris terlalu besar. Ukuran baris maksimum untuk tipe tabel yang digunakan, tidak termasuk BLOB, adalah 8126. Anda harus mengubah beberapa kolom menjadi TEXT atau BLOB
Saya mencari jawaban untuk yang berikut:
Apa rumus terperinci untuk menentukan ukuran baris khususnya ketika menggunakan lot's dari kolom v / v / b / t? Saya sudah mencoba beberapa formual berbeda menggunakan
varchar(N)kolom (di mana N adalah antara 1 dan 512), charset UTF8 (* 3), dan kolom sebanyak tabel akan mengambil sampai kegagalan. Tidak ada satu pun dari kombo yang saya coba berikan nilai yang cocok dengan hasil tes yang sebenarnya.Apa 'overhead' lain yang harus saya pertimbangkan ketika menghitung ukuran baris?
Mengapa pesan kesalahan berubah dari 8126 ke 65535 ketika saya beralih dari membuat tabel dengan kolom varchar (109) ke kolom varchar (110)?