int или long типы переменных для долгосрочной масштабируемости - PullRequest
2 голосов
/ 20 января 2012

Я создаю приложение и для нескольких полей БД в настоящее время использую int, и то же самое для классов, которые определяют объектные модели, использующие эти значения.

Позже (т.е. 1-2 года, может быть, меньше, я надеюсь), я, вероятно, превысит 2 миллиарда записей. Будет ли достаточно сложно изменить типы данных тогда, или мне потребуется 20-30 минут, чтобы изменить все поля и классы БД с int на long, хотя это довольно легко сделать.

Спасибо за ваши предложения.

Ответы [ 3 ]

2 голосов
/ 20 января 2012

Если у вас столько строк в таблице, обновление до 64-битного int с 32-битного int может быть очень медленной операцией, поскольку это приведет к значительному повторному разбиению на страницы.Теперь это было бы быстрое изменение.Однако очевидно, что использование вашего дискового пространства будет расти быстрее за прошедший период, если вы перейдете прямо к 64-битным полям сейчас.Если вы можете нести расходы на это в ваших планах, это стоило бы сделать сейчас.

1 голос
/ 20 января 2012

Если вы имеете в виду int64 вместо int32, то, если вы думаете, что вам это понадобится, и у вас есть ресурсы, сделайте это.

Будучи .net, вы не можете неявно приводить из Int64 к int32, поэтому компиляция подберет их, вам, тем не менее, придется искать любые явные приведения, которые вы уже делаете.

0 голосов
/ 20 января 2012

Если это для поля Id, вам следует рассмотреть возможность использования Guid, которого теоретически должно быть более чем достаточно

...