Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Когда в ms sql появится свой mediumint ?  [new]
Кесарь
Member

Откуда:
Сообщений: 651
Владислав Колосов
Гавриленко Сергей Алексеевич,

а в процентном соотношении какой over?


Поддерживаю вопрос!
3 июн 21, 11:47    [22330819]     Ответить | Цитировать Сообщить модератору
 Re: Когда в ms sql появится свой mediumint ?  [new]
Кесарь
Member

Откуда:
Сообщений: 651
alexeyvg
Поэтому нужен не Int3 или Int7, а VarInt, который бы занимал подходящее количество бит под лежащее там значение.
Записали туда 127, выделилось 8 бит, прибавили 1, опа, уже под поле в этой конкретной записи выделено 9 бит.


Ну с точки зрения удобства проектирования и написания кода, это безусловно так. Вопрос лишь в том, чтобы поиск был быстрым, потому как повторюсь в первую очередь целочисленные типы нужны для внутренних целей БД, а не для полезной информации.


Подозреваю, хотя могу ошибаться, что внутри движка реализованы разные алгоритмы для сопоставления, поиска, индексации и прочей работы для имеющихся целочисленных типов. Оптимизированные под их длину.

Соответственно, если это так, то варинт не пойдёт для ссылочности. Для хранения полезной инфы, но не для внутренних целей.


Если же алгоритм для всех целочисленных типов один, то мысль интересная.
3 июн 21, 12:13    [22330837]     Ответить | Цитировать Сообщить модератору
 Re: Когда в ms sql появится свой mediumint ?  [new]
sergeyns
Member

Откуда: Москва
Сообщений: 1256
Кесарь


P.S. Более того! Sql server вообще-то умеет (умеет, когда захочет, что называется) хранить данные побитово. И ничто не мешает сделать типы данных с размером в 1.5 и 2.5 байт. Т.е. в 12 и 20 бит. Если такие типы данных ограничить только положительными значениями, то они были бы очень хороши для идентификаторов справочников (12 бит = 0 - 4095) или иных бизнес-сущностей (20 бит = 0 - 1 048 575).


лет 10 назад был такой прикол
"А почему в Экселе нельзя сделать больше 255 колонок"
"а чтобы особо умные не делали таблички с днями года в колонках"

Неужто кто-то сейчас выгадывает байты при проектировании промышленных систем? Экономия аж 20-30 байт на ключе элемента справочника и пары терабайт на базе вылезет в ужаснейший гемор когда ваш запланированных список бизнесущностей на 20 бит вдруг вылезет за, казалось бы, такие широкие пределы. Аж мульон! Разве может быть в номенклатуре продукции быть более мульона наименований? "сарказм"

Сообщение было отредактировано: 3 июн 21, 14:38
3 июн 21, 14:46    [22330932]     Ответить | Цитировать Сообщить модератору
 Re: Когда в ms sql появится свой mediumint ?  [new]
Кесарь
Member

Откуда:
Сообщений: 651
sergeyns
Неужто кто-то сейчас выгадывает байты при проектировании промышленных систем?


Представьте себе да. Если у вас склад промпредприятия, то это не так заметно. А вот если у вас процессинговая система крупного банка или интернет-магазина, то кол-во данных, которое проходит через систему, огромно. Речь не о дисковом пространстве, а о нагрузке.


Экономия аж 20-30 байт на ключе элемента справочника и пары терабайт на базе вылезет в ужаснейший гемор когда ваш запланированных список бизнесущностей на 20 бит вдруг вылезет за, казалось бы, такие широкие пределы. Аж мульон! Разве может быть в номенклатуре продукции быть более мульона наименований? "сарказм"


Проектировать надо с учётом области работы, только и всего. С пониманием, что делаешь. Каждая позиция номенклатуры - это экземпляр типа, а не тип. Соответственно под это больше. А вот кол-во типов сущностей намного меньше по определлению. И таблица, в которой хранятся экземпляры, определённо будет меньше, если ссылка на тип будет не бигинт, а медиуминт2.

Item (ID bigint PK, TypeID mediumint2 FK, ...)
3 июн 21, 14:59    [22330938]     Ответить | Цитировать Сообщить модератору
 Re: Когда в ms sql появится свой mediumint ?  [new]
sergeyns
Member

Откуда: Москва
Сообщений: 1256
Кесарь
sergeyns
Неужто кто-то сейчас выгадывает байты при проектировании промышленных систем?


Представьте себе да. Если у вас склад промпредприятия, то это не так заметно. А вот если у вас процессинговая система крупного банка или интернет-магазина, то кол-во данных, которое проходит через систему, огромно. Речь не о дисковом пространстве, а о нагрузке.


Расскажите это любителям микросервисов, REST api между ними и прочей xml нечисти!
3 июн 21, 16:03    [22330984]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft SQL Server Ответить