SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.10.2011 21:43:56

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Автоинкрементное поле заполняется не по порядку

Добрый день. Столкнулся со следующей проблемой:
У меня есть автоинкрементное поле bigint(20)
У меня в таблице 30 000 записей но при этом у меня есть id = 540 000
все id идут не по порядку. Т.е
select id from table limit 10
выдает набор
10
1
1000
1001
234
2000
и так далее.
Подскажите пожалуйста, в чем может быть проблема. (Записи из таблицы никогда не удалялись)
Я бы хотел, чтоб они шли с инкрементом = 1
SHOW VARIABLES LIKE 'auto_inc%';
выдает
1
1

Спасибо!

Неактивен

 

#2 16.10.2011 22:33:30

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Автоинкрементное поле заполняется не по порядку

Вы привели результат несортированного запроса. Попробуйте такой:

select id from table ORDER BY id limit 10

Неактивен

 

#3 17.10.2011 14:40:36

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Re: Автоинкрементное поле заполняется не по порядку

Мне не нужен отсортированный список. Я не могу понять, как, если автоинкремент добавляет +1 - то как может появится id > количества записей в таблице (причем намного больший)

Неактивен

 

#4 17.10.2011 14:41:40

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Re: Автоинкрементное поле заполняется не по порядку

ну и если не отсортированный, то значит сначала была добавлена запись с ид = 10 а потом 1 - что тоже меня сильно смущает

Неактивен

 

#5 17.10.2011 14:59:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Автоинкрементное поле заполняется не по порядку

alex_neon написал:

Мне не нужен отсортированный список. Я не могу понять, как, если автоинкремент добавляет +1 - то как может появится id > количества записей в таблице (причем намного больший)

Удаление или явное указание при добавлении.

Неактивен

 

#6 17.10.2011 15:06:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Автоинкрементное поле заполняется не по порядку

alex_neon написал:

ну и если не отсортированный, то значит сначала была добавлена запись с ид = 10 а потом 1 - что тоже меня сильно смущает

Нет. При добавлении пишет в свободную область диска, т.о. запись добавленная позже может быть расположена ближе к началу файла.

Неактивен

 

#7 18.10.2011 10:47:19

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Re: Автоинкрементное поле заполняется не по порядку

vasya написал:

alex_neon написал:

Мне не нужен отсортированный список. Я не могу понять, как, если автоинкремент добавляет +1 - то как может появится id > количества записей в таблице (причем намного больший)

Удаление или явное указание при добавлении.

Ни удаления ни явного указания нет. Просто постоянно идет добавление новых записей.

Неактивен

 

#8 18.10.2011 12:08:08

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Автоинкрементное поле заполняется не по порядку

Что даст

SELECT MIN(id), MAX(id), COUNT(*) FROM table;

Неактивен

 

#9 18.10.2011 18:44:18

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Re: Автоинкрементное поле заполняется не по порядку

'18', '32398710', '2099'

Неактивен

 

#10 18.10.2011 18:47:36

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Автоинкрементное поле заполняется не по порядку

Такая бага была в старом MySQL (3.23). Какая у вас версия? Если новая, то нужно попробовать повторить поведение и написать на bugs.mysql.com

Неактивен

 

#11 19.10.2011 19:26:00

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Re: Автоинкрементное поле заполняется не по порядку

у меня 5.1.41-3ubuntu12.10

Неактивен

 

#12 19.10.2011 19:40:04

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Автоинкрементное поле заполняется не по порядку

Можете воспроизвести ситуацию с нуля? Создать таблицу, вставлять в нее записи так, чтобы стали не подряд.

Неактивен

 

#13 22.10.2011 00:50:56

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Re: Автоинкрементное поле заполняется не по порядку

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

Неактивен

 

#14 22.10.2011 00:52:46

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Автоинкрементное поле заполняется не по порядку

Можно ли создать набор команд, чтобы сторонний наблюдатель мог повторить данное поведение?

Неактивен

 

#15 25.10.2011 23:16:15

alex_neon
Участник
Зарегистрирован: 16.10.2011
Сообщений: 8

Re: Автоинкрементное поле заполняется не по порядку

это достаточно проблематично. Эти команды все выполняются из hadoop-Грида. Поэтому наверное нет.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson