sql >> Databáze >  >> RDS >> Mysql

Změnit limit pro velikost řádku Mysql je příliš velká

Otázka byla položena na chybě serveru taky.

Možná se budete chtít podívat na tento článek což vysvětluje hodně o velikostech řádků MySQL. Je důležité si uvědomit, že i když použijete pole TEXT nebo BLOB, může být velikost vašeho řádku stále vyšší než 8 kB (limit pro InnoDB), protože na stránce je uloženo prvních 768 bajtů pro každé pole.

Nejjednodušším způsobem, jak to vyřešit, je použít formát souboru Barracuda s InnoDB. Tím se v podstatě zbavíte problému tím, že se místo uložení prvních 768 bajtů uloží pouze 20 bajtový ukazatel na textová data.

Metoda, která tam fungovala pro OP, byla:

  1. Přidejte následující do my.cnf soubor pod [mysqld] sekce.

    innodb_file_per_table=1
    innodb_file_format = Barracuda
    
  2. ALTER tabulku použít ROW_FORMAT=COMPRESSED .

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

Je možné, že výše uvedené stále vaše problémy nevyřeší. Je to známá (a ověřená) chyba pomocí InnoDB enginu a prozatímní opravou je přechod na MyISAM motor jako dočasné úložiště. Takže ve vašem my.cnf soubor:

internal_tmp_disk_storage_engine=MyISAM


  1. Testování zatížení sítě pomocí iPerf

  2. Je časové pásmo java.sql.Timestamp specifické?

  3. Spouštěč s názvem dynamického pole

  4. Příklady RAND() v SQL Server