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

MySQL VARCHAR(255) UTF8 je pro klíč příliš dlouhý, ale maximální délka je 1000 bajtů

Pokud používáte utf8mb4 a máte jedinečné indexy ve sloupcích varchar, které jsou delší než 191 znaků, budete muset zapnout innodb_large_prefix, abyste umožnili větší sloupce v indexech, protože utf8mb4 vyžaduje více úložného prostoru než utf8 nebo latin1 . Přidejte následující do souboru my.cnf.

[mysqld]
innodb_file_format=barracuda
innodb_file_per_table=1
innodb_large_prefix=1
init_connect='SET collation_connection = utf8mb4_unicode_ci; SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

Další informace o důvodech a budoucnosti z dokumentace MySQL 5.7 :

Abych to shrnul, limit je zde pouze kvůli kompatibilitě a bude v budoucích verzích zvýšen.



  1. Použijte SET TEXTSIZE k omezení dat vrácených pro každý řádek na serveru SQL Server

  2. Jak aktualizovat pole a přidat hodnotu ke stávající hodnotě?

  3. Vyberte sloupce s konkrétními názvy sloupců v PostgreSQL

  4. Najít skutečný název sloupce aliasu použitého v pohledu?