Переполнение автоинкремента

Nikitian

Новичок
Блин, а ведь верно: при большом количестве вставок-удалений вполне может проявиться ситуация с выходом за пределы того же Int. Получается для всех autoincrement -полей указывать максимаьлно возможное bigint?
 
Nikitian
напиши, какое максимальное значение может принимать int в mysql.
 
До 2 миллиардов со знаком и 4 без знака. Вы считаете это много?
5-7 лет активной работы и неожиданный баг гарантирован.
 
Nikitian
расскажите о своей практике, когда вы добирались до лимита? какой это был проект? что за данные?

чтобы вас не утомлять подсчётами - упереться в знаковый инт за 7 лет, это ~840000 записей в день. в беззнаковый - в 2 раза больше...
а теперь поговорите ещё, что это рядовая ситуация.
 
10 вставок в секунду - это потянет даже шаредхостинг )))
На одном из наших сайтов (городской портал) сейчас идёт до 1000 запросов в секунду из них около 1% - это не select'ы. Вот и думаю что ждёт в ближайшем будущем, если учесть, что сайт пашет уже 5 год и меньше не становится.

P.S. Дебильнейшая структура сайта устроена таким образом, что есть одна гигантская таблица и постепенно она разгружается на мелкие, но не разгрузится ещё ой как долго...
 
10 вставок в секунду - это потянет даже шаредхостинг )))
и на шаред хостинге будет 1 таблица, ага

На одном из наших сайтов (городской портал) сейчас идёт до 1000 запросов в секунду из них около 1% - это не select'ы. Вот и думаю что ждёт в ближайшем будущем, если учесть, что сайт пашет уже 5 год и меньше не становится.
даже если представить, что ты говоришь правду, то это 10 те же вставок в секунду. и те же 840000 в сутки. жажду узнать, что это за данные, ну и ссылку на этот мегапортал (в этом месте думаю вконтакте, как один из самых посещаемых в рунете, тихо стоит в уголочке)

-~{}~ 29.05.09 21:26:

P.S. Дебильнейшая структура сайта устроена таким образом, что есть одна гигантская таблица и постепенно она разгружается на мелкие, но не разгрузится ещё ой как долго...
не верю.
 
Nikitian
если это твой сайт, то, может быть, ты приведешь реальную статистику по приросту автоинкремента, а не высосанные из пальца проценты?
 
Автор оригинала: *****
Nikitian
если это твой сайт, то, может быть, ты приведешь реальную статистику по приросту автоинкремента, а не высосанные из пальца проценты?
Сайт не мой, а компании, в которой работаю. К реальной статистике доступа не имею в данный момент, т.к. впринципе и не должен иметь его, но однажды видел.
Сейчас посмотрел базу - судя по всему, существующие таблицы в базе не один раз копировались и сейчас я насчитал 4 старых таблицы с максимумом id 10-15кк и текущая max(id) 2055454. Видимо там наступал предел возможностей для существующего оборудования.

Вопрос идёт не о том, где и что я видел и делаю, а о том, как выходить из озвученной ситуации.
 
Сейчас посмотрел базу - судя по всему, существующие таблицы в базе не один раз копировались и сейчас я насчитал 4 старых таблицы с максимумом id 10-15кк и текущая max(id) 2055454.
это в тысячу раз меньше, чем беззнаковый предел. через лет 500 приходи.

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

Это был лишь пример. Допустим система статистики подобные объёмы данных наберёт гораздо быстрее.

Есть у меня предположение, что id в этих таблицах вообще не нужно.
Id там нужно, причём критично. Не нужна одна гигантская таблица, но это уже не ко мне вопрос - я как раз разгружаю её на мелкие.
 
Надо адекватно оценивать свой опыт и свои знания. На основании которых делаются эти "предвидения". Иначе можно сесть в лужу.

Зачем системе статистики уникальный идентификатор?
 
Смешные вы. Прежде чем войти в ситуацию её нужно предвидеть, иначе в ситуацию не войдёшь, а вляпаешься.
это тебе на форумы по философии нужно тогда. ну или практическому гаданию.

Это был лишь пример. Допустим система статистики подобные объёмы данных наберёт гораздо быстрее.
вот как только у тебя будет система статистики... вот как только твоя система наберёт нужные темпы роста... кстати, люди, которые такими объёмами ворочают, как правило таких вопросов не задают.

ps: я ошибся, если темпы сохранятся, то приходить тебе за советом нужно не через 500 лет, а через 5000. ну или 10 000 лет, если поставить unsigned.
имхо, у тебя достаточно времени, чтобы что-то придумать.
 
я поддерживаю zerkms и Фaнат'а
но свои 5 копеек: есть какие-то подводные камни у BIGint + autoincrement ?
 
Автор оригинала: Nikitian
До 2 миллиардов со знаком и 4 без знака. Вы считаете это много?
5-7 лет активной работы и неожиданный баг гарантирован.
Проблемы с работой на таких размерах данных возникает гораздо раньше проблемы конечности автоинкремента.

-~{}~ 29.05.09 15:55:

Автор оригинала: Gas
но свои 5 копеек: есть какие-то подводные камни у BIGint + autoincrement ?
Какой максимальный integer в РНР на 32-битной машине? ;)
 
Какой максимальный integer в РНР на 32-битной машине?
если никаких вычислений не производить (а какие вычисления производить с PK?) - тогда пофиг, всё равно приходит строка.

ps:
Код:
zerkms@honeypot ~ $ php -r "echo pow(2, 33) * 13 + 666;"
111669150362
zerkms@honeypot ~ $ uname -a
Linux honeypot 2.6.28-gentoo-r5 #1 SMP Sat Apr 25 00:35:48 VLAST 2009 i686 Intel(R) Celeron(R) CPU 430 @ 1.80GHz GenuineIntel GNU/Linux
 
Автор оригинала: zerkms
если никаких вычислений не производить (а какие вычисления производить с PK?) - тогда пофиг, всё равно приходит строка.
Но камешек то есть? Приходится id-шник из запроса постоянно чистить ручками, вместо простого кастования к инту.
 
Сверху