|
Как проапдэйтить таблицу, близкую к переполнению?
|
|||
---|---|---|---|
#18+
Добрый день. Есть таблица t1, в ней поле id. id - PK. значения id близки к переполнению bigint. Подскажите, как проапдэйтить таблицу, присвоив id значения от 1 до (select count(*) from t1) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 11:02 |
|
Как проапдэйтить таблицу, близкую к переполнению?
|
|||
---|---|---|---|
#18+
УткъДобрый день. Есть таблица t1, в ней поле id. id - PK. значения id близки к переполнению bigint. Подскажите, как проапдэйтить таблицу, присвоив id значения от 1 до (select count(*) from t1) ? как вы вообще добились переполнения id то для bigint? это задача на много тысяч лет... в вашем случае надо или 1)тупо сделать update всей таблицы из sequence если у вас таблица в реальности не больше нескольких гигабайт и вы можете пережить ее распухание в два раза или 2) 1 - добавляем новое поле id_new bigserial 2 - неспешно пачками по 10000 записей проставляем для id_new значения из nextval в цикле пока все не обновится 3 - создаем уникальный индекс конкурентно 4 - ставим not null на id_new (или с блокировкой или напрямую в каталоге) 5 - в транзакции дропаем старый pk и добавляем новый pk используюя индекс из 3 и там же переименовываем id в id_old а id_new в id 6 - удаляем из таблицы id_old это все в предположении что у вас нет fk ссылающихся на этот id если таковые есть - то вы попали на весьма геморойную миграцию по сравнению с которой 2) - это цветочки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 11:40 |
|
Как проапдэйтить таблицу, близкую к переполнению?
|
|||
---|---|---|---|
#18+
Maxim BogukУткъДобрый день. Есть таблица t1, в ней поле id. id - PK. значения id близки к переполнению bigint. Подскажите, как проапдэйтить таблицу, присвоив id значения от 1 до (select count(*) from t1) ? как вы вообще добились переполнения id то для bigint? это задача на много тысяч лет... в вашем случае надо или 1)тупо сделать update всей таблицы из sequence если у вас таблица в реальности не больше нескольких гигабайт и вы можете пережить ее распухание в два раза или 2) 1 - добавляем новое поле id_new bigserial 2 - неспешно пачками по 10000 записей проставляем для id_new значения из nextval в цикле пока все не обновится 3 - создаем уникальный индекс конкурентно 4 - ставим not null на id_new (или с блокировкой или напрямую в каталоге) 5 - в транзакции дропаем старый pk и добавляем новый pk используюя индекс из 3 и там же переименовываем id в id_old а id_new в id 6 - удаляем из таблицы id_old это все в предположении что у вас нет fk ссылающихся на этот id если таковые есть - то вы попали на весьма геморойную миграцию по сравнению с которой 2) - это цветочки. Спасибо, вариант 1 оказался. Тупо проапдэйтил в цикле по ctid каждую запись таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 11:50 |
|
Как проапдэйтить таблицу, близкую к переполнению?
|
|||
---|---|---|---|
#18+
так и не раскрыл тайну, как можно добится переполнения id для bigint при нормальной работе девять тысяч квадриллионов или более девяти триллионов... Уткъ , открой секрет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 15:42 |
|
Как проапдэйтить таблицу, близкую к переполнению?
|
|||
---|---|---|---|
#18+
Alex URSтак и не раскрыл тайну, как можно добится переполнения id для bigint при нормальной работе девять тысяч квадриллионов или более девяти триллионов... Уткъ , открой секрет Система анализа действий автоматической классификации пользователей в социальных сетях. (SoAU 12.3) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 16:28 |
|
Как проапдэйтить таблицу, близкую к переполнению?
|
|||
---|---|---|---|
#18+
позвольте тогда полюбопытствовать: если закладывали такую систему, то наверняка знали об объеме информации почему не воспользовались uuid? дата/время записи наверняка ж присутствует, поэтому отсутствием последовательности пожно пренебреч, соблюдая уникальность uuidником либо причины в ином? (у меня чисто спортивный интерес) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 17:02 |
|
Как проапдэйтить таблицу, близкую к переполнению?
|
|||
---|---|---|---|
#18+
Alex URSпозвольте тогда полюбопытствовать: если закладывали такую систему, то наверняка знали об объеме информации почему не воспользовались uuid? дата/время записи наверняка ж присутствует, поэтому отсутствием последовательности пожно пренебреч, соблюдая уникальность uuidником либо причины в ином? (у меня чисто спортивный интерес) мне тоже интересно, т.к. даже совершая сто миллиардов инкрементов в секунду, этого хватит почти на 6 лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 17:50 |
|
|
start [/forum/topic.php?fid=53&msg=39742913&tid=1995459]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 269ms |
total: | 416ms |
0 / 0 |