Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Такая ситуация. В журнал пишутся логи всех запросов к серверу. Сделал 2 временные таблицы (четный час пишется в одну таблицу, нечетный час - в другую) и одну основную в которую по крону каждый час скидываются данные поочередно из 2-х временных таблиц. Данные скидываются в основную таблицу таким образом mysql_query("INSERT INTO `log_requests`(`created` ,`url` ,`params`) SELECT `created` ,`url` ,`params` FROM `log_requests1`"); mysql_query("TRUNCATE TABLE `log_requests1`"); Проблема такая: после заполнения основной таблицы, наблюдаются пробелы в ID. К примеру вот id записей вставленных по порядку. .. 189998 1437658199 /url {"key":"CF725E79-0B52-FA79-C298-151F8DDC3A76"} 189999 1437658199 /url {"hash":"2840201cf49f65071fad3fbf374242b1cc72b906~...} 190000 1437658199 /url {"key":"22243F4C-9A2F-3118-784F-DE0932CE92E9"} 196606 1437658200 /url {"key":"03F853A0-66B0-B24D-58FF-14F4B85867D7"} 196607 1437658200 /url {"hash":"22cdbbb140a967687162162783612786263666..} ... Круглое число в данном примере случайность. Разрывы наблюдаются между запусками агрегирующего скрипта. Никаких удалений из таблицы нет совсем. В данный момент такой запрос Код: sql 1. выдает 1 | 772980 | 683761 Кто-то сталкивался с таким или может объяснить почему такое происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2015, 19:01 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Это - НОРМАЛЬНО. И вообще - нахрена тебе та непрерывность? Уникален? Да... и достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2015, 21:05 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Akina, с практической, так сказать, точки зрения ваш ответ устраивает )) Но, чисто из спортивного интереса, хочется узнать о причинах такого поведения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 09:01 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
petr12345, "К примеру вот id записей вставленных по порядку." а как вы получили данный набор, ORDER BY id ? т.е. у вас нет id 190001-196605 ? тогда это глюк ЕСЛИ просто SELECT * FROM table, ТОГДА MySQL - пишет как хочет, а еще и показывает не так как пишет... (без ORDER BY) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 09:13 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, да именно с ORDER BY `id` ASC визуально заметил после очередного запуска скрипта, что последнее значение 190000 после следующего запуска скрипта, обнаружил, что следующий id = 196606 записей [190001 - 196605] - нету ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 09:44 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
можно только предположить, что каким-то образом не прошел скрипт со вставкой пачки 6605 строк, т.е. инкремент увеличился, а вставка "отменилась" (из-за ошибки или при других обстоятельствах) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 12:13 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, по второй колонке timestamp видно, что пробелов нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 13:11 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
сейчас вот максимальный id 17580, а следующий инкремент показывает 32768 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 13:16 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Автоинкремент еще увеличивается при INSERT ... ON DUPLICATE KEY UPDATE при срабатывании ветки UPDATE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 13:44 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
miksoft, с этой таблицей работает только один скрипт, который выполняет 2 запроса Код: sql 1. 2. всё! никаких апдейтов, никаких удалений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 15:00 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
petr12345, а не может быть что при переключении часов(таблицу куда писать) происходит сбой - что не пишеться ни туда ни туда, или же при работе инсерта, всё есчё продолжается запись в таблицу, и транкейт потом удаляет...задержку поставь между инсертом и транкейтом и посмотри сколько записей в таблице - столько же как было перед инсертом или другое число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 15:25 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Кому не лень, может проделать самостоятельно следующие действия. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Заполняем временную табличку Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Выполняем перенос из временной таблицы в основную таблицу Код: sql 1. 2. 3. Проверяем следующее значение инкремента (Не забываем указывать название своей базы в TABLE_SCHEMA !!! ) Код: sql 1. 2. 3. 4. 5. 6. 7. И видим что оно не 6, как ожидалось, а 8 Проверим еще раз скинув данные из временной таблички Код: sql 1. 2. 3. Смотрим что имеется: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Значений 6 и 7 нету!! Следущий инкремент ожидается 15 Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 15:42 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
какая у вас версия MySQL ради интереса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2015, 23:54 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
MariaDB 10 тоже самое, после insert-select автоинкремент перескакивает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2015, 01:19 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
и увеличение на 2 больше, чем max(id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2015, 01:26 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
petr12345В журнал пишутся логи всех запросов к серверу. Сделал 2 временные таблицы (четный час пишется в одну таблицу, нечетный час - в другую) и одну основную в которую по крону каждый час скидываются данные поочередно из 2-х временных таблиц. Утолите любопытство отрока-невежды - для чего такие премудрости? Практический смыл есть какой нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2015, 02:16 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, на локалхосте mysql 5.5 на сервере Maria 10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 07:18 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
Serguei, практический смысл есть, но не хотелось бы отвлекаться от поставленной проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2015, 07:20 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
petr12345, здравствуйте! Удалось решить вопрос с "перескакиванием" автоинкремента? Какое решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2016, 18:20 |
|
||
|
Автоинкремент не по порядку
|
|||
|---|---|---|---|
|
#18+
pinguin88 ,решение тут: 17927439 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2016, 19:17 |
|
||
|
|

start [/forum/search_topic.php?author=rentgen&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 446ms |
| total: | 585ms |

| 0 / 0 |
