У кого-нибудь есть серьезные доказательства того, что CHAR быстрее, чем VARCHAR? - PullRequest
10 голосов
/ 04 августа 2010

Какой-нибудь тест, график вообще что-нибудь?Это все академическое и теоретическое в Интернете.

Хорошо, это не первый раз, когда задают этот вопрос, все они говорят, что использование CHAR приводит к более быстрому выбору?Я даже читал в книгах по MySQL, все равно, но я не сталкивался ни с одним тестом, доказывающим это.

Может ли кто-нибудь пролить свет на это?

Ответы [ 3 ]

5 голосов
/ 04 августа 2010

Это простая логика, для упрощения я возьму пример файла CSV ...

будет ли поиск в этой строке быстрее

тысяча двести тридцать один; 231; 32345; 21312; 23435552; ​​тысяча двести тридцать один; 1; 243; 211; 3525321; 44343112;

или этот

12; 23; 43; 54; 56; 76; 54; 83; 45; 91; 28; 92

до тех пор, пока вы правильно определяете длину, CHAR должен быть быстрее, поскольку предопределенный формат помогает времени обработки.

5 голосов
/ 04 августа 2010

Дело в том, что это не так. Во всяком случае, не само собой.

Однако верно то, что если в таблице есть только поля фиксированной ширины, MySQL не нужно выполнять некоторые вычисления для определения начала каждого поля.

Также может быть разница для очень коротких полей. Если вы сравните CHAR (1) с VARCHAR (1), последний займет в два раза больше памяти, чем первый (в однобайтовых кодировках)

0 голосов
/ 04 августа 2010

Полагаю, вам нужно взять перчатку и просто сделать это.

...