Производительность типа MySql varchar

Насколько я понимаю, если вы объявите столбец как varchar(15) или varchar(200), это не повлияет на размер памяти. Если вы храните 4-символьную строку, она должна использовать только около 4 байтов. То же самое и в Oracle для varchar2. Но для Oracle их производительность отличается, поскольку чем больше размер, который вы устанавливаете, тем больше накладных расходов будет использоваться.

То же самое в MySQL (или любой другой базе данных)?


person user1619397    schedule 07.09.2012    source источник
comment
В mysql он использует длину + 1 байт или, если вы определили varchar больше 255, то длина + 2 байта. Если поле - utf8, то размер в байтах может в 3 раза превышать заявленный размер.   -  person Imre L    schedule 07.09.2012
comment
Спасибо за ответ. Я понял, что ты сказал. как насчет накладных расходов? это будет то же самое или существенно другое   -  person user1619397    schedule 10.09.2012
comment
Я бы сказал, что это примерно то же самое. Беспокойство по этому поводу вызывает микрооптимизация   -  person Imre L    schedule 10.09.2012


Ответы (1)


  • VARCHAR:

    1. Stores strings of variable length.
    2. Параметр length указывает максимальную длину строк.
    3. В нем хранится до 2000 байт символов.
    4. Он будет занимать место для значений NULL
    5. Общая длина строк определяется при создании базы данных.
  • VARCHAR2:

    1. Stores strings of variable length.
    2. Параметр length указывает максимальную длину строк.
    3. В нем хранится до 4000 байт символов.
    4. Он не будет занимать место для значений NULL
    5. Общая длина строк определяется при задании строк.
person hjpotter92    schedule 07.09.2012
comment
Я предполагаю, что вы говорите о MySql. Что такое VARCHAR (2)? - person user1619397; 10.09.2012