Mesej ralat "Saiz baris terlalu besar (> 8126)" menunjukkan bahawa satu baris dalam jadual MySQL melebihi had lalai 8KB. Beberapa faktor menyumbang kepada isu ini, termasuk jenis data yang digunakan dalam lajur jadual.
Satu penyelesaian yang berpotensi ialah menukar beberapa lajur kepada jenis data TEXT atau BLOB, kerana ini boleh menampung jumlah data yang lebih besar. Selain itu, menggunakan ROW_FORMAT=DYNAMIC atau ROW_FORMAT=COMPRESSED juga boleh membantu mengurangkan saiz baris dengan menyimpan data dengan cara yang lebih cekap.
Walau bagaimanapun, mesej ralat yang diberikan menunjukkan bahawa walaupun dengan pengubahsuaian ini, saiz baris mungkin masih menjadi terlalu besar. Ini kerana enjin storan InnoDB menyimpan 768 bait pertama data BLOB sebaris dalam baris, seterusnya mengehadkan saiz baris.
Untuk menangani isu ini, pertimbangkan untuk melaksanakan penyelesaian berikut:
Tukar kepada Fail Barracuda Format:
Tambah yang berikut pada fail my.cnf:
innodb_file_per_table=1
- This file format removes the issue of storing BLOB data inline, allowing larger rows to be accommodated.
Gunakan ROW_FORMAT=COMPRESSED:
Laksanakan pertanyaan berikut untuk mengubah struktur jadual:
ALTER TABLE table_name ENGINE=InnoDB ROW_FORMAT=COMPRESSED
- This setting reduces the row size by compressing non-key columns, potentially resolving the issue.
Jika penyelesaian di atas masih gagal menyelesaikan isu, pertimbangkan untuk beralih sementara kepada enjin MyISAM untuk menyimpan data sementara dengan menambah baris berikut pada fail my.cnf:
internal_tmp_disk_storage_engine=MyISAM
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Ralat 'Saiz baris terlalu besar' MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!