Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Поле ENUM и его Изменение (Трава) 27/08/2005 - 14:46:44
      Re: Поле ENUM и его Изменение (Трава) 27/08/2005 - 16:27:52
      Re: ENUM - ENUM - ENUM !!! (TPABA) 27/08/2005 - 19:22:39
      Re: ХРАНЕНИЕ списков ENUM в таблицах MYISAM (Травa) 27/08/2005 - 19:33:18
      Re: ENUM: INSERT и REPLACE (Трава) 28/08/2005 - 00:28:19
      Re: Поле ENUM и его Изменение (Shadow Of Templar) 29/08/2005 - 11:47:05
      Re: Поле ENUM и его Изменение (Shadow Of Templar) 29/08/2005 - 11:50:42
      Re: ужас (Dinky) 29/08/2005 - 20:35:47
      Re: Вопросы остались без ответов (Трава) 01/09/2005 - 15:57:17
      Re: Вопросы остались без ответов (Dinky) 01/09/2005 - 18:56:37
      Re: Спасибо Dinky ! (Трава) 28/09/2005 - 23:48:27
      Re: мониторинг обращения к принтеру (VOVA) 06/03/2007 - 18:12:26

> Original message text:
> From: Трава - 27/08/2005 - 14:46:44
> Subject:Поле ENUM и его Изменение
> -----------------
> Поле ENUM и его изменение
>
> Формулирую ЗАДАЧУ
>
> Представим себе вполне разумную ситуацию.
>
> 1. При создании таблицы было создано поле VALUTA ENUM('RUB','USD')
> 2. Создан индекс на это поле.
> 3. В базе было создано еще более 100 разных полей.
> 4. Один раз в месяц база наполнялась на 1 000 000 записей или больше
> 5. И выросла до 100 000 000 записей
> 6. И тут появилась необходимость добавить валюту ЕВРО
> 7. Решаем запустить команду
>
> ALTER TABLE mytable MODIFY valuta enum('RUB','USD','EUR')
>
> В идеале хочется, чтобы эта команда:
>
> 1.Моментально добавила новую валюту в список возможных значений поля
> 2. Оставила нумерацию RUB=1, USD=2
> 3. Присвоила EUR=3
> 4. Не трогала старых записей в таблице и не обновляла и не меняла их содержание.
> 5. Не пересоздавала всю таблицу.
> 6. Не производила переиндексацию поля.
> 7. Моментально бы меняла тип поля с 1байтового до 2байтового, когда список превышает 255 значений
>
>
> Повторю команду:
>
> ALTER TABLE mytable MODIFY valuta enum('RUB','USD','EUR')
>
> Есть несколько вопросов?
>
> 1. Правильна ли написана команда?
> 2. Кто лучше для этого изменения? CHANGE или MODIFY ?
> 3. Присвоит ли команда строке 'EUR' номер 3 в списке?
> 4. Оставит ли команда прежнюю нумерацию RUB=1, USD=2
> 5. Не будет ли команда обновлять поле valuta по всей базе? (типа update)
> 6. Будет ли проводится автоматическая переиндексация поля valuta ?
> 7. Быстро ли сработает эта команда на 100 000 000 записей ?
> 8. Изменится ли тип поля ENUM с одногобайтного до двухбайтного, если увеличить количество строк в списке с 3 до 300 ?
> 9. Можно ли добавить новое значение EUR в список ENUM без команды ALTER ?
>
>
> На часть этих вопросов я могу ответить сам
>
> 1. С помошью маленькой модели БД с 2 полями и 10 записями
> 2. С помошью команды EXPLAIN
>
> Многим будет интересно,
>
> 1. Есть ли отличия и усовершенствования во внутренем механизме ENUM между 4.1 и 5 версиями MySQL?
>
> 2. Какие изменения планируются командой MySQL AB в отношении ENUM?
>
> 3. В каких версиях планируются эти усовершенствования?
>
>
> :)
>
> Я наверное уже совсем загрузил вопросами насчет ENUM. Но это не шутки. Возможно, тип поля ENUM гораздо эффективнее справочников и вообще эффективнее схемы "снежинка". В схеме "снежинка" есть одна главная таблица. Она содержит основные данные. То есть даты, суммы и КОДЫ стран, валют, цветов БЕЗ их названий. Она соединяется со множеством других таблиц, которые называются Справочники или Словари. Они содержат только НАЗВАНИЯ и КОДЫ стран, валют, цветов.
>
> P.S.
> Жаль что до сих пор нет полноценного типа BIT (BOOLEAN) с хранением на диске одного БИТА для каждой записи. То есть 0 или 1 и ничего более. Но это усовершенствование видимо появится только в 5.1. Этот тип хорош для хранения ответов "ДА" и "НЕТ" :) Для уверенных в себе! А тип ENUM допускает ответы "не уверена" и "возможно согласна" – это не для мужчин.
>
>
>
>


From: Shadow Of Templar - 29/08/2005 - 11:47:05
Subject:Поле ENUM и его Изменение
-----------------
мда, вообщем так, енум выкидывать и создавать справочник с валютами
в противном случае: будет произведена переиндексация таблицы, в обязательном порядке
потом, поле не 1байтовое, а int (ну по идее должен быть)
и вообще, делать в БД енум это изврат, по практике могу сказать, что справочник работает быстрее, чем хоть и проиндексированный, но енум, и места меньше занимает


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
30914



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |