sql >> Database teknologi >  >> RDS >> Mysql

MySQL VARCHAR-længder og UTF-8

Dette svar dukkede op øverst i mine google-søgeresultater, men det var ikke korrekt, så:

Forvirringen skyldes sandsynligvis, at forskellige versioner af mysql bliver testet.

  • Version 4 tæller bytes
  • Version 5 tæller tegn

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

MySQL fortolker længdespecifikationer i tegnkolonnedefinitioner i tegnenheder. (Før MySQL 4.1 blev kolonnelængder fortolket i bytes.) Dette gælder for CHAR, VARCHAR og TEXT-typerne.

Interessant nok (jeg havde ikke tænkt over det) er den maksimale længde af en varchar-søjle påvirket af utf8 som følger:

Den effektive maksimale længde af en VARCHAR i MySQL 5.0.3 og nyere er underlagt den maksimale rækkestørrelse (65.535 bytes, som deles mellem alle kolonner) og det anvendte tegnsæt. For eksempel kan utf8-tegn kræve op til tre bytes pr. tegn, så en VARCHAR-kolonne, der bruger utf8-tegnsættet, kan erklæres til maksimalt 21.844 tegn.



  1. Avanceret partitionsmatchning for partitionsmæssig joinforbindelse

  2. Opret MySQL-forespørgselsovervågningsbash-script

  3. Implementering af fejl- og transaktionshåndtering i SQL Server

  4. SQL Server 2016:Opret et login