DBAtlas · Veritabanı operasyon atlası

1118: ER_TOO_BIG_ROWSIZE: Row size too large

MySQL

Ne demek?

Tanımlamaya çalıştığınız tablonun satır boyutu, kullanılan depolama motorunun izin verdiği en büyük satır boyutunu aşıyor. BLOB/TEXT dışı sütunlar için satır boyutu üst sınırı 65535 bayttır; InnoDB'de sayfa boyutuna bağlı ek sınırlar da vardır.

Neden olur?

Çok sayıda geniş sütun (özellikle uzun VARCHAR/CHAR) tanımlamak; utf8mb4 gibi çok baytlı karakter setlerinde her karakterin 4 bayta kadar yer tutması; ya da InnoDB'nin COMPACT/REDUNDANT satır formatında büyük sütunların satır içinde saklanması.

Nasıl çözülür?

Bazı büyük sütunları TEXT/BLOB tipine çevirin (bunlar satır dışında saklanabilir); gereksiz veya çok geniş sütunları küçültün ya da tabloyu ikiye bölün. InnoDB'de ROW_FORMAT=DYNAMIC veya COMPRESSED kullanmak büyük sütunları satır dışına taşıyarak yardımcı olur: ALTER TABLE tablo ROW_FORMAT=DYNAMIC; Ayrıca innodb_page_size'ı da göz önünde bulundurun.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar