powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Креш таблички, как полечить autoincrement?
7 сообщений из 7, страница 1 из 1
Креш таблички, как полечить autoincrement?
    #38706923
Dust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, уважаемое сообщество, прошу совета ибо гугль не знает.
После креша (по хардварным причинам) таблички сделал Myisamchk, и все вроде пучком. Через денек заметил странные записи - поле ключа, которое автоинкремент имеет какое то бешенное значение. Записей в табличку уже накидали, и бог его знает какая на нем логика висит, но то что я вижу (пхп) частенько болеет от таких значений.
Имеем пока вот что:
forum# myisamchk -dvv /var/db/mysql/dust/inposts.MYI

MyISAM file: /var/db/mysql/dust/inposts.MYI
Record format: Packed
Character set: cp1251_general_ci (51)
File-version: 1
Creation time: 2012-02-09 16:52:26
Recover time: 2014-07-27 22:20:51
Status: checked
Auto increment key: 1 Last value: 44848048511114
Data records: 455520 Deleted blocks: 0
Datafile parts: 455520 Deleted data: 0
Datafile pointer (bytes): 6 Keyfile pointer (bytes): 6
Datafile length: 260307612 Keyfile length: 40052736
Max datafile length: 281474976710654 Max keyfile length: 288230376151710719
Recordlength: 1192

Вопрос - как полечить такое вот дело? Ну кроме как ручным анализом этой таблицы - там несколько сот тысяч записей, я пока не готов лопатить ее...
...
Рейтинг: 0 / 0
Креш таблички, как полечить autoincrement?
    #38707082
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dustя вижу (пхп) частенько болеет от таких значений
Dustкак полечить такое вот дело?А сфига ты здорового-то лечишь? больного лечи, тогда толк будет.
...
Рейтинг: 0 / 0
Креш таблички, как полечить autoincrement?
    #38707130
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dust, изменить то само текущее значение autoincrement можно, это есть в документации.
но вот что вы будете делать с остальными записями и всеми записями ссылающимися на них ? может оказаться не так просто.
поэтому вам и предлагают считать эту ситуацию нормальной и ничего не лечить.
...
Рейтинг: 0 / 0
Креш таблички, как полечить autoincrement?
    #38707187
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dust,

А есть ссылки на этот ключ в других или в этой же таблицах?
...
Рейтинг: 0 / 0
Креш таблички, как полечить autoincrement?
    #38707415
kixiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если нет связи автоинкремента с другими записями по логике схемы БД. То если смущают большие значения автоинкрементального поля. Я бы сделал так:

1. создал таблицу
create table table_new like table_old
2. перезалил в нее записи, но без поля автоинкремента:
insert into table_new (field2,field3,... ) select field2,filed3,... from table_old
3. переименовал бы таблицы table_old -> table_bed , table_new -> table_old
...
Рейтинг: 0 / 0
Креш таблички, как полечить autoincrement?
    #38707490
Dust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind,

Первая идея была поменять autoincrement на какое-то нормальное значение+ запас на те записи, которые были добавлены уже с большим значением. Запрос alter table inposts AUTO_INCREMENT=500000 выполняется успешно, но значение не изменяется.
...
Рейтинг: 0 / 0
Креш таблички, как полечить autoincrement?
    #38707494
Dust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Наличие связей по этому ключу мне пока не известно. Куча логики зарыто в скриптах, пока ломать связку боюсь, нужно потестировать на чем то поменьше.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Креш таблички, как полечить autoincrement?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]