Я делаю приложение для запуска как на SQL Server, так и на PostgreSQL, поэтому я задаю этот вопрос обо всех из них.Будет ли уникальный RID когда-либо «переполняться»?
Что происходит всякий раз, когда вы создаете уникальный первичный ключ (с использованием типа последовательности или объекта с автоматическим приращением), и вы набираете более 4 миллиардов записей (32 бита)? Я не говорю, что в нашей таблице будет 4 миллиарда записей, а в том, что было создано 4 миллиарда записей, потому что RID только увеличивается. Поэтому, даже если я удалю 3,9 миллиарда этих записей, мои RID все еще находятся в диапазоне 4 миллиарда. Так что же происходит? Означает ли он точность до 64 бит или перекатывается до 0 или просто выплюнет очень критическую ошибку? Должен ли я беспокоиться о том, что даже 64-битный RID может также переполняться?
Также, как я могу бороться с этим? Есть ли какой-то способ очистки или инструмент? Должен ли я просто создавать свою собственную вещь каждый год или полностью перестраивать таблицу, чтобы получить согласованные МПОГ? (и, следовательно, также касаются многих других таблиц, которые используют эти RID, являются внешними ключами)
Да, 32-разрядные автоинкрементные значения будут переполняться. http://stackoverflow.com/questions/261815/upper-limit-for-autoincrement-primary-key-in-sql-server – jball
Вы не сможете переполнить 64-битное число за всю свою жизнь, оно слишком велико , –
За всю свою жизнь? Или примерно через 10 лет? Я определенно не хочу исправлять эту ошибку через 10 лет, когда база данных заполнена очень важными данными. – Earlz