|
|
|
Не будет глюков если AUTO_INCREMENT поставить меньше имеющихся значений?
|
|||
|---|---|---|---|
|
#18+
Версия сервера: 5.2.14-MariaDB-mariadb122 Есть таблица MyISAM Код: sql 1. текущие значения Id 95 млн. Хочу сделать Код: sql 1. Таблица - промежуточный буфер, одни добавляют сообщения, другие читают и удаляют, на текущий момент нет Id меньше 90 млн. Если переключу на 10 млн, то пока до 20 считает - все что больше уже удалится к этому времени. Зачем это надо: этот Id используется у достаточно большого количества пользователей, понаписано полно разного: от обмена в DBF с полем N(8) под Id до кривых проверок что Id должен быть 8-мизначный, вобщем хз что на той стороне понаписано, у каждого пользователя свои писатели. Переживаю: не словлю ли какие-то глюки или тормоза при таком переключении? Вроде не должен, но с MySQL мало работал, может чего не знаю, поэтому решил переспросить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 15:02 |
|
||
|
Не будет глюков если AUTO_INCREMENT поставить меньше имеющихся значений?
|
|||
|---|---|---|---|
|
#18+
Dima T, Если таблицы InnoDB, то при рестарте сервера автоинкременты автоматически переинициализируются на MAX(id)+1. За эти придется следить. В остальном ничего страшного случиться не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 15:05 |
|
||
|
Не будет глюков если AUTO_INCREMENT поставить меньше имеющихся значений?
|
|||
|---|---|---|---|
|
#18+
Зримых проблем две. Первая - можно наткнуться на значение, которое всё ещё не удалено. Итог - вставка в таблицу прекратится, начнёшь терять данные. Вторая - наличие в связанных таблицах неудалённых записей, привязанных к этому значению. Итог - в общем очевиден. Вторая проблема устраняется принудительной ручной чисткой "подвисших" записей в связанных таблицах. Первая - только периодической проверкой, что диапазон значений автогенерации на достаточную дистанцию "чист". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 15:06 |
|
||
|
Не будет глюков если AUTO_INCREMENT поставить меньше имеющихся значений?
|
|||
|---|---|---|---|
|
#18+
miksoft - MyISAM. Он не инициализируется при перезагрузке? Akina, как уже написал счетчик не досчитает до уже существующего значения. Текущее min(Id) ~90 млн. Потенциальную возможность такого понимаю, поэтому буду периодически проверять пока все что > 90 млн. не удалится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 15:24 |
|
||
|
Не будет глюков если AUTO_INCREMENT поставить меньше имеющихся значений?
|
|||
|---|---|---|---|
|
#18+
Dima Tmiksoft - MyISAM. Он не инициализируется при перезагрузке?нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 15:26 |
|
||
|
Не будет глюков если AUTO_INCREMENT поставить меньше имеющихся значений?
|
|||
|---|---|---|---|
|
#18+
Фокус не удался :( Код: sql 1. Выполняется без ошибок, но счетчик не меняет. Продолжает выдавать как было 95000000+ Есть еще какой-то способ счетчик поменять? Хэлпы почитал - не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 08:13 |
|
||
|
Не будет глюков если AUTO_INCREMENT поставить меньше имеющихся значений?
|
|||
|---|---|---|---|
|
#18+
Dima T, Да, сорри, запамятовал я про это. http://dev.mysql.com/doc/refman/5.7/en/alter-table.html To change the value of the AUTO_INCREMENT counter to be used for new rows, do this: ALTER TABLE t2 AUTO_INCREMENT = value; You cannot reset the counter to a value less than or equal to the value that is currently in use. For both InnoDB and MyISAM, if the value is less than or equal to the maximum value currently in the AUTO_INCREMENT column, the value is reset to the current maximum AUTO_INCREMENT column value plus one. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 09:37 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=101&tid=1831786]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 385ms |

| 0 / 0 |
