Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL VARCHAR дължини и UTF-8

Този отговор се появи в горната част на резултатите от търсенето ми с Google, но не беше правилен, така че:

Объркването вероятно се дължи на различни версии на mysql, които се тестват.

  • Версия 4 брои байтове
  • Версия 5 отчита знаци

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

MySQL интерпретира спецификациите на дължината в дефинициите на колони от знаци в символни единици. (Преди MySQL 4.1 дължината на колоните се интерпретира в байтове.) Това се отнася за типовете CHAR, VARCHAR и TEXT.

Интересното е (не се бях замислял) максималната дължина на колона varchar се влияе от utf8, както следва:

Ефективната максимална дължина на VARCHAR в MySQL 5.0.3 и по-късно зависи от максималния размер на реда (65 535 байта, който се споделя между всички колони) и използвания набор от знаци. Например, utf8 символите могат да изискват до три байта на знак, така че колона VARCHAR, която използва набора от utf8 символи, може да бъде декларирана като максимум 21 844 знака.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предоставяне на разрешения на потребител на MySQL в Linux чрез командния ред

  2. Промяна на ограничението за Mysql размер на ред е твърде голям

  3. Защита на базата данни 101:Сигурност в бази данни с отворен код

  4. 2017 @ Severalnines:Честваме историите на нашите клиенти

  5. Python:най-добрата практика и най-сигурният начин за свързване с MySQL и изпълнение на заявки