Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 bigint или nvarchar для поля с индексом  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
Здравствуйте!

будет ли разница в быстроте поиска по полю bigint и nvarchar, если это поле будет индексированное?
(длинна nvarchar будет ограничена, не max)

-
Чудеса случаются. Это Вам любой программист скажет.
26 дек 17, 13:20    [21062968]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
наутилус, Вы про коня в вакууме слышали?
26 дек 17, 13:22    [21062983]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
наутилус,

разница в длинне, если не ошибаюсь разница в сравнении значений, и главный вопрос зачем если можно в int?
26 дек 17, 13:23    [21062991]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
лолл
Member

Откуда:
Сообщений: 450
наутилус,

Сильно зависит от правил сравнения и размерности. Бинарное, например, довольно быстро работает
26 дек 17, 13:29    [21063017]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
TaPaK, несколько лет назад в одном большом российском холдинге инты кончились.

То-то "смеху" было, пока все ключи на бигинты переводили.
26 дек 17, 13:52    [21063125]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Cammomile
TaPaK, несколько лет назад в одном большом российском холдинге инты кончились.

То-то "смеху" было, пока все ключи на бигинты переводили.

int вообще часто кончаются, то просто не дописанная фраза bigint, если выбирать между ними, то как бы и выбора нет :)
26 дек 17, 13:55    [21063137]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 398
наутилус
Здравствуйте!

будет ли разница в быстроте поиска по полю bigint и nvarchar, если это поле будет индексированное?
(длинна nvarchar будет ограничена, не max)

Результирующий B-Tree, в зависимости от значений этих полей, может быть очень разным.
Например, поэтому, приходилось как-то тот же bigint использовать в формате YYMMDDXXXXXXXXXXXXX, где YYMMDD - дата, а XXXXXXXXXXXXX - уже значение счетчика на эту дату.
26 дек 17, 14:02    [21063171]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
buser,

про коня слышал ) можно и мне теоретически ответить ))
26 дек 17, 14:11    [21063213]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
TaPaK
наутилус,

разница в длинне, если не ошибаюсь разница в сравнении значений, и главный вопрос зачем если можно в int?

есть значение - число. при запросе с фронта число преобразовывается в строку и далее фронт оперирует этой строкой (делает по ней запросы из базы)
так вот вопрос в скорости, что будет быстрее:
1) храним бигинт, на беке преобразовываем строку с фронта в бигинт, делаем запрос по индексированому числовому полю
2) храним уже преобразованную строку и выборку делаем по индексированому строковому полю

что бы вы выбрали?
26 дек 17, 14:18    [21063243]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
наутилус,

а зачем такие танцы на фронте? ну и в любом случае int/bigint в базе
26 дек 17, 14:23    [21063268]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
TaPaK,

ок, услышал. спасибо! )
26 дек 17, 14:26    [21063286]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
наутилус
TaPaK
наутилус,

разница в длинне, если не ошибаюсь разница в сравнении значений, и главный вопрос зачем если можно в int?

есть значение - число. при запросе с фронта число преобразовывается в строку и далее фронт оперирует этой строкой (делает по ней запросы из базы)
так вот вопрос в скорости, что будет быстрее:
1) храним бигинт, на беке преобразовываем строку с фронта в бигинт, делаем запрос по индексированому числовому полю
2) храним уже преобразованную строку и выборку делаем по индексированому строковому полю

что бы вы выбрали?

а какие операции сравнения возможны с этими данными? ))
26 дек 17, 15:51    [21063711]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
Гигабайт Мегабайтович Килобайтов
а какие операции сравнения возможны с этими данными? ))

по задумке только "=", т.е. получения данных по полному совпадению ключа
26 дек 17, 16:02    [21063769]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
наутилус
Гигабайт Мегабайтович Килобайтов
а какие операции сравнения возможны с этими данными? ))

по задумке только "=", т.е. получения данных по полному совпадению ключа

таки "по задумке" или уже прописаны кейсы?
26 дек 17, 16:35    [21063959]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
Гигабайт Мегабайтович Килобайтов,

получение записи по ключу. единственный кейс
26 дек 17, 16:39    [21063984]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
наутилус
Гигабайт Мегабайтович Килобайтов,

получение записи по ключу. единственный кейс

тадысь если nvarchar (fix) то без разницы.
тока если это поле не будет PK , там есть нюансы. И их тоже надо будет учитывать.
26 дек 17, 16:59    [21064105]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
наутилус
Member

Откуда: UA
Сообщений: 1261
Гигабайт Мегабайтович Килобайтов
наутилус
Гигабайт Мегабайтович Килобайтов,

получение записи по ключу. единственный кейс

тадысь если nvarchar (fix) то без разницы.
тока если это поле не будет PK , там есть нюансы. И их тоже надо будет учитывать.

это поле не РК, а какие нюансы?
26 дек 17, 17:36    [21064241]     Ответить | Цитировать Сообщить модератору
 Re: bigint или nvarchar для поля с индексом  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
наутилус
Гигабайт Мегабайтович Килобайтов
пропущено...

тадысь если nvarchar (fix) то без разницы.
тока если это поле не будет PK , там есть нюансы. И их тоже надо будет учитывать.

это поле не РК, а какие нюансы?

таки вставка и удаление . Но если не PK то и не заморачивайтесь.
26 дек 17, 17:43    [21064271]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить