В чем разница, используя tinyint
или smallint
(если применимо), а не только int
делать? Или ограничение поля char
на минимальные символы?
Эти варианты влияют на производительность или просто выделенное пространство?
В чем разница, используя tinyint
или smallint
(если применимо), а не только int
делать? Или ограничение поля char
на минимальные символы?
Эти варианты влияют на производительность или просто выделенное пространство?
В индексированном поле со значительно большой таблицей размер вашего поля может существенно повлиять на производительность. На неиндексированном поле его не так важно, что ему еще нужно записать дополнительные данные.
Тем не менее, время простоя большого стола может составлять несколько минут или даже несколько часов, поэтому не делайте их меньше, чем вы себе представляете.
Да, это также влияет на производительность.
Если индексы больше, для чтения их с диска требуется больше времени, и меньше можно кэшировать в памяти.
Я часто видел эти три недостатка конструкции схемы, вызывающие проблемы:
Я никогда не видел хорошо преднамеренного (т.е. не только используя varchar (255) для всех cols), но консервативный выбор неправильного размера данных вызывает значительные проблемы с производительностью. По значимости я имею в виду фактор 10. Я регулярно вижу недостатки алгоритмического дизайна (отсутствующие индексы, отправка слишком большого количества данных по кабелю и т.д.), Что приводит к значительно большему результату.
Оба, в некоторых случаях. Но imo, это скорее вопрос дизайна, чем соображения производительности и хранения. Причина, по которой вы не делаете все varchar(...)
, заключается в том, что она не точно отражает, какие данные должны храниться там, и это снижает целостность данных и безопасность типов.