Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.11.2011, 10:55
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

MySQL: ENUM или SET
Что использовать для множества из 41 элемента, ENUM или SET?

Цитирую небольшой кусок с описанием типов:
Цитата:
Размер объекта ENUM определяется количеством различных перечисляемых величин. Один байт используется для перечисления до 255 возможных величин. Используя два байта, можно перечислить до 65535 величин.
Размер объекта SET определяется количеством различных элементов множества. Если это количество равно N, то размер объекта вычисляется по формуле (N+7)/8 и полученное число округляется до 1, 2, 3, 4 или 8 байтов. Множество SET может иметь максимум 64 элемента.
Мне подходит как первый так и второй тип. Казалось бы SET оптимальнее подходит по количеству, но зато он занимает 8 байт в памяти. ENUM же при 41 элементе занимает 1 байт.

Как понимаю логичнее использовать ENUM, или я что-то не учел?
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2011, 14:27
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

я вот даже не знаю.
это ведь совсем разные типы данных.
Цитата:
ENUM (перечисление) - это столбец, который может принимать значение из списка допустимых значений, явно перечисленных в спецификации столбца в момент создания таблицы.
То есть вы задаете список допустимых значений, и в конкретной строке вы можете указать одно единственное значение из определенного ранее списка
Цитата:
SET - это строковый тип, который может принимать ноль или более значений, каждое из которых должно быть выбрано из списка допустимых значений, определенных при создании таблицы. Элементы множества SET разделяются запятыми. Как следствие, сами элементы множества не могут содержать запятых.
Иными словами, вы задаете список допустимых значений, и в конкретной строке вы можете указать любую комбинацию из этих элементов. Например указать 3 из ваших 41-го элементов.

Выбирать тип поля надо в соответсвии с тем, что вы там собираетесь хранить.
Если вам подходят оба типа, то видимо вам нужно хранить только одно значение из списка.
Значит нужно использовать ENUM
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2011, 05:32
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

Gvozd,
Да спасибо, я вот это собственно сразу то и не понял, что SET позволяет указать несколько значений. Теперь буду знать. Конечно мне подходит более ENUM.
Спасибо.
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Общие вопросы Javascript 1 13.04.2011 22:09
Разработка движка для сайта. MySQL, PHP Shitbox2 Работа 25 13.03.2011 20:58
В зависимости от referrer выводить рекламу adsene или зорьки wlad2 Общие вопросы Javascript 12 19.12.2010 01:02
удаленная MySQL mycoding Серверные языки и технологии 10 28.07.2010 15:12
Игра орел или решка на jquery. В любом случаи выводит вы проиграли! Dimaz jQuery 4 25.12.2009 15:04