Генерация уникального ID в MySQL

Barlone

Guest
Автор оригинала: Energizer
- Мне не нужен DELETE!
- Для меня не желателен(но не критичен) рост ID!
Таблица будет расти до невероятных размеров! (~5000-10000 в сутки)
Мда. С ростол размера таблицы время выполнения ALTER быстро возрастает - при этом вся таблица должна скопироваться. Так что уже через несколько дней 10000 ALTER в сутки просто не успеют выполниться.
 

Energizer

Guest
Хорошо, а что скажете про снижение производительности при таких объемах инф-и?
(Рабочий объем таблицы всегда будет в пределах 20000-40000 записей, остальное - мертвый груз)
 

Energizer

Guest
Автор оригинала: Barlone
Мда. С ростол размера таблицы время выполнения ALTER быстро возрастает - при этом вся таблица должна скопироваться. Так что уже через несколько дней 10000 ALTER в сутки просто не успеют выполниться.
1) $a= Select min(id) where trigger=0
2) Alter ... set ... where id=$a
Что тут сложного?
 

tony2001

TeaM PHPClub
Demiurg:
это он UPDATE альтером обозвал.
еще один "перенумеровальщик ауто-инкремента" ....

следующий!
 

Demiurg

Guest
>Сорри, 2-ю ночь не сплю.
тогда лучше поспать, на свежую голову думается лучше.
 

Energizer

Guest
:) Времени нет.
Так что, про Update скажете? На сколько тяжела эта операция(~30-35 столбцов)? Или все же общество склоняется к необратимо растущему ID?
 

Demiurg

Guest
Не знаю, как другие но я пока не могу понять задачу, так что сказать что то сложно.
 

tony2001

TeaM PHPClub
Демиург:
я ж говорю:
>еще один "перенумеровальщик ауто-инкремента" ....

Энерджайзер:
НЕ ТРОГАЙ ауто_инкрементное поле.
тебе не все ли равно - будет там id 97878 или 98 ?
 

Energizer

Guest
Да самая обычная задача. Допустим есть сайт по продаже авто. Люди публикуют предложения. Через некоторое время они устаревают, все время база пополняется новыми. Как лучше реализовать?
Пару раз в сутки ставлю триггер в 0 на тех позициях, где ID, устарели. Сейчас я делаю UPDATE по этим "устаревшим" ID. Роста таблицы естественно не происходит!
Вы же мне говорите: "Забей на все, жить нужно проще ну и пусть себе растет".
 

Апельсин

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

tony2001

TeaM PHPClub
>переноси все в архив с датой старше чем ..
или просто удаляй
кому нужны старые объявления ?
 

Energizer

Guest
Автор оригинала: tony2001
Демиург:
я ж говорю:
>еще один "перенумеровальщик ауто-инкремента" ....

Энерджайзер:
НЕ ТРОГАЙ ауто_инкрементное поле.
тебе не все ли равно - будет там id 97878 или 98 ?
НЕ ТРОГАЮ Я ТВОЕ АВТОИНКРЕМЕНТНОЕ ПОЛЕ!!! Меняется содержимое полей(строки чтоли) этого индекса.
 

RomikChef

Guest
не ори.
Это и имеется в виду под словом "трогать".

короче, кажется, вопрос уже решили.
еще вопросы будут?
 
Сверху