Mysql Команда для подбора типов данных колонок в MySQL

Мне кажется или всё таки была какая то команда в MySQL, типа ANALYZE TABLE, которая показывала, какие типы данных лучше использовать? Типа, вот у вас тут TEXT, а сделайте лучше VARCHAR(800) и т.п.
 

WMix

герр M:)ller
Партнер клуба
ANALYZE TABLE такое есть, а остальеное кажись ты придумал.
 

WMix

герр M:)ller
Партнер клуба
не пойму что ты добиться хочешь. допустим я строил таблицу, и исходя из самого длинного названия города определил длину поля 25 символов. от того что этого города в базе нет, не значит что длина поля должна стать к примеру 20
ну те проверять смысл каждого поля придется все равно,
 
Хочу подобрать более-менее адекватные типы данных к полям вот такой, например, таблицы:
SQL:
CREATE TABLE `new_buisness_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `group_of_company` varchar(2000) NOT NULL,
  `name_of_legal` text NOT NULL,
  `trademark` text NOT NULL,
  `logo` varchar(2000) NOT NULL,
  `photos` text NOT NULL,
  `post_addr` text NOT NULL,
  `bind_addr_to_map` text NOT NULL,
  `site_addr` varchar(2000) NOT NULL,
  `phone` text NOT NULL,
  `email` text NOT NULL,
  `short_descr_activities` text NOT NULL,
  `major_production_facilities` text NOT NULL,
  `name_of_director` text NOT NULL,
  `contact_director` text NOT NULL,
  `position_of_director` text NOT NULL,
  `name_of_production` text NOT NULL,
  `contact_production` text NOT NULL,
  `position_of_production` text NOT NULL,
  `name_of_press` text NOT NULL,
  `contact_press` text NOT NULL,
  `position_of_press` text NOT NULL,
  `contragents` text NOT NULL,
  `type_of_company` varchar(2000) NOT NULL,
  `parent_type_of_company` varchar(200) NOT NULL,
  `date_reg` datetime DEFAULT NULL,
  `locked` int(1) NOT NULL,
  `id_cats` varchar(500) NOT NULL,
  `id_empl` text NOT NULL,
  `count_empl_req` text NOT NULL,
  `count_empl_free` text NOT NULL,
  `topicality` varchar(400) NOT NULL,
  `author` varchar(200) NOT NULL,
  `hh_company` int(11) NOT NULL,
  `city` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `id_cats` (`id_cats`(333))
) ENGINE=MyISAM AUTO_INCREMENT=1276 DEFAULT CHARSET=utf8
 

AmdY

Пью пиво
Команда форума
Мне кажется `group_of_company` varchar(2000) должен всё же быть `group_of_company` varchar(1999) ведь это сэкономит огромное ничто.
Зачем трать время и заморачиваться размерами, если тебе поможет обычная пищевая соль, чтение документации по типам.
Пройдись по тому что ты сгенерил и ответь на вропосы, зачем здесь варчар, почему 200, почему здесь текст, почему здесь нот нулл, а здесь зачем дефалт.
Это какой-то карго культ с построением самолётов из соломы, без понимания зачем и тем более зачем читать доку.
 
То есть MyISAM тебя не смутил?)
А чем он должен смутить?
Пройдись по тому что ты сгенерил
Это не я сгенерил. Я хочу это исправить )

Кстати. Кто как относится к полям, где возможно NULL? Если это так вредно, как все пишут (что для числовых типов не надо использовать NULL, а лучше 0, для строковых типов не NULL, а пустая строка и т.д.), то зачем его придумали?
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
Кстати. Кто как относится к полям, где возможно NULL? Если это так вредно, как все пишут (что для числовых типов не надо использовать NULL, а лучше 0, для строковых типов не NULL, а пустая строка и т.д.), то зачем его придумали?
NULL это когда нет значения, 0 это значение

если это референс то полюбому или те значения которые возможны или NULL
или иначе по примеру

`id_cats` varchar(500) NOT NULL,
`id_empl` text NOT NULL,

(я думаю что есть таблицы employees и catalogs) далее вопрос, может быть new_buisness_table без указания одного из полей?,
если да, то поле NULL, если нет то NOT NULL ну и CONSTRAINS прописать
смущает что текстовые, вероятно все совсем плохо
 

Тугай

Новичок
какие типы использовать никакой analyze table не покажет это задачей определяется :)
длинные varchar нужно аккуратно использовать можно быстро упереться в лимит 16к на запись, они быстрее text при поиске, но критично ли это ?
про id_ уже написали они точно должны быть не text и varchar, загугли лучше книжку по рсубд и потрать пару дней на чтение
 

AnrDaemon

Продвинутый новичок
Это не я сгенерил. Я хочу это исправить )
ответь на вопросы, зачем здесь варчар, почему 200, почему здесь текст, почему здесь нот нулл, а здесь зачем дефалт.
Выпиши ответы на бумажку и сравни их с максимально допустимыми значениями для каждого поля.
Тогда сразу увидишь, что у тебя не так со структурой.
 
Сверху