Использование символов в полях MySQL ENUM, это хорошая идея? - PullRequest
1 голос
/ 08 октября 2011

Недавно я исследовал производительность и лучшие практики MySQL, и недавно я обнаружил, что поле ENUM имеет лучшую производительность: http://www.mysqlperformanceblog.com/2008/01/24/enum-fields-vs-varchar-vs-int-joined-table-what-is-faster/

Однако мне интересно, если это хорошая идея дляустановить поле ENUM с символами, так как у меня в настоящее время есть поле ENUM с «Положительным», «Отрицательным», «Нейтральным», и я собирался сделать что-то вроде ENUM ('+', '-', '='), чтобыабстрагируйте данные и сэкономьте место в этой таблице.Это поле будет предметом объединений (следовательно, индекса), где операторы, группировка и т. Д.

Это хороший подход?Я не хочу позже узнать, что это был не тот путь.

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Это даст вам абсолютно нулевую скорость.
ENUM быстрее, потому что они хранятся не как текст, а как целые числа.

Внутренне ваше перечисление сохраняется как:

"Positive"  => 1
"Negative"  => 2
"Neutral"   => 3

Перед выполнением запроса MySQL переводит значения в их целочисленное представление.
Вместо проверки afield of type string = "Positive"
MySQL сделает afield of type tinyint = 1

Нижняя строка
Вы не сэкономите места вообще.
Вы не получите скорости вообще.

Я бы советовал против этого.

0 голосов
/ 09 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...