Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ubah batas untuk ukuran Baris Mysql terlalu besar

Pertanyaan telah diajukan di serverfault juga.

Anda mungkin ingin melihat artikel ini yang menjelaskan banyak tentang ukuran baris MySQL. Penting untuk diperhatikan bahwa meskipun Anda menggunakan bidang TEXT atau BLOB, ukuran baris Anda masih bisa lebih dari 8K (batas untuk InnoDB) karena menyimpan 768 byte pertama untuk setiap bidang sebaris di halaman.

Cara termudah untuk memperbaikinya adalah dengan menggunakan format file Barracuda dengan InnoDB. Ini pada dasarnya menghilangkan masalah sama sekali dengan hanya menyimpan pointer 20 byte ke data teks alih-alih menyimpan 768 byte pertama.

Metode yang berhasil untuk OP di sana adalah:

  1. Tambahkan yang berikut ini ke my.cnf file di bawah [mysqld] bagian.

    innodb_file_per_table=1
    innodb_file_format = Barracuda
    
  2. ALTER tabel untuk menggunakan ROW_FORMAT=COMPRESSED .

    ALTER TABLE nombre_tabla
        ENGINE=InnoDB
        ROW_FORMAT=COMPRESSED 
        KEY_BLOCK_SIZE=8;
    

Ada kemungkinan hal di atas masih belum menyelesaikan masalah Anda. Ini adalah bug yang diketahui (dan diverifikasi) dengan InnoDB engine, dan perbaikan sementara untuk saat ini adalah mundur ke MyISAM mesin sebagai penyimpanan sementara. Jadi, di my.cnf . Anda berkas:

internal_tmp_disk_storage_engine=MyISAM


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Campuran ilegal dari susunan (utf8_unicode_ci,IMPLICIT) dan (utf8_general_ci,IMPLICIT) untuk operasi '='

  2. Bisakah saya mengembalikan satu tabel dari file mysql mysqldump penuh?

  3. Berbagai Cara untuk Melihat Tabel di Server MySQL

  4. Ekstraksi substring MySQL menggunakan pembatas

  5. Pemantauan MySQL yang Efektif Dengan Dasbor SCUMM:Bagian 3