sql >> Database >  >> RDS >> Mysql

MySQL VARCHAR-lengtes en UTF-8

Dit antwoord verscheen bovenaan mijn Google-zoekresultaten, maar was niet correct, dus:

De verwarring is waarschijnlijk te wijten aan het feit dat verschillende versies van mysql worden getest.

  • Versie 4 telt bytes
  • Versie 5 telt tekens

http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html

MySQL interpreteert lengtespecificaties in karakterkolomdefinities in karaktereenheden. (Vóór MySQL 4.1 werden kolomlengtes geïnterpreteerd in bytes.) Dit geldt voor CHAR, VARCHAR en de TEXT-typen.

Interessant genoeg (ik had er niet over nagedacht) de maximale lengte van een varchar-kolom wordt als volgt beïnvloed door utf8:

De effectieve maximale lengte van een VARCHAR in MySQL 5.0.3 en hoger is afhankelijk van de maximale rijgrootte (65.535 bytes, die door alle kolommen wordt gedeeld) en de gebruikte tekenset. Utf8-tekens kunnen bijvoorbeeld maximaal drie bytes per teken vereisen, dus een VARCHAR-kolom die de utf8-tekenset gebruikt, kan worden gedeclareerd als maximaal 21.844 tekens.



  1. Hoe bekijk je ALLE tekst van een ntext of nvarchar (max) in SSMS?

  2. Aan de slag met Shareplex op Windows op AWS, deel 2

  3. SQL*Plus hoe de tekstvariabele van de prompt te accepteren?

  4. Hoe Oracle MD5 hash-functie aan te roepen?