Стоит ли использовать значение NULL в MYSQL-таблице?
Добрый день.
Имеется таблица `table` с некоторым набором полей. В неё вставляются записи определённого формата.
В дальнейшем появится новый формат - такой же, как `table`, но с пятью дополнительными полями. Записи будут приходить как нового, так и старого формата.
Размер таблицы - примерно 1500к записей и более.
Как лучше сделать в этой ситуации:
1) Разделить эти форматы по двум разным таблицам `table` и `table_new`
2) Или расширить (ALTER) исходную таблицу `table` и в случае прихода данных по старому формату оставлять новые поля пустыми (NULL)?
3) Или возможен какой-то ещё вариант?
Для правильного вопроса надо знать половину ответа
Ещё есть вариант указать стандартное (DEFAULT) значение при модификации таблицы.
Конкретный вариант выбирайте из того, как потом будут обрабатываться эти поля.
Вот я и думаю - или NULL заложить, или некое нереальное значение по дефолту, чтобы по нему было видно, что оно не через вставку появилось, а по умолчанию.
Лучше, значит, дефолт?
У меня эти поля используются только при выборке данных, никаких условий по ним и сортировок не делается.
Remmi: Ничем не обоснованное заявление. NULL индексируется так же как и все остальное и он действительно добавляет два байте к размеру записи для двухбайтовых кодировок.
Ну если уж совсем плохо спите имея Null в таблицах, ток ак советовали на аскдеве not null default ''. Хотя смысла в том я вижу чуть менее ноля
ALTER делайте сразу, потом будет долго. Одну таблицу с дополнительными полями NULL или значениями по дефолту. Если критично, можно добавить ещё одно поле, которое показывает версию формата.