SQL

Если у нас есть Varchar(10) то он займет 11 байт верно?

Нет, не верно. В каждой СУБД способ хранения строк свой.

Если говорить про MySQL, то при использовании кодировки utf8 (позволяет хранить только символы нулевой плоскости юникода) код каждого символа хранится в 3 байтах, при использовании кодировки utf8mb4 (позволяет хранить любые символы юникода) - в 4 байтах.

Будет ли выделено место сразу под максимальную длину строки или под реальное кол-во символов в данной строке, зависит от используемого для конкретной таблицы MySQL движка - коих многократно больше, чем MyISAM и InnoDB.

P.S. Если же говорить про сферического коня в вакууме, то ты прав: 11 байт. 1 байт под длину строки (этого достаточно до varchar(255) включительно) и 10 байт под символы строки.
АК
Александр Конов
62 718
Лучший ответ
Игорь Вербилов это просто задание в котором надо расчитать максимальный размер памяти который займет тот или иной атрибут и вот там есть варчар из 10 символов
Максимально 12 байт, потому что нужно ещё хранить информацию о длине строки. Минимально 2 байта.
Denis )))
Denis )))
63 997
Игорь Вербилов а почему 2 байта на длину
Introduction to MySQL VARCHAR data type
MySQL VARCHAR is the variable-length string whose length can be up to 65,535. MySQL stores a VARCHAR value as a 1-byte or 2-byte length prefix plus actual data.

The length prefix specifies the number of bytes in the value. If a column requires less than 255 bytes, the length prefix is 1 byte. In case the column requires more than 255 bytes, the length prefix is two length bytes.

http://www.mysqltutorial.org/mysql-varchar/
Андрей Кабанов
Андрей Кабанов
71 390
А как же кодировка? в utf8 может быть 4 байта на символ. А еще почему длина 2 байта? если длина ограничена 10, то и байта хватит. Это все зависит от реализации базы данных.

В каких-то ситуациях на каких-то базах Varchar(10) может быть 44 байта. (почему бы и не 4 байта на длину? 4 байта тоже распространено для целых чисел)
Игорь Вербилов в данном задании не нужно так заморачиватся. Нужно указать максимальный размер памяти для варчара из 10 символов
Игорь Вербилов я вот не пойму 12 или 11