Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / InnoDB - отмена запроса / 11 сообщений из 11, страница 1 из 1
23.11.2013, 14:48:46
    #38475239
qwerp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
Есть таблица InnoDB с миллиардом записей.

С ней ошибочно производится массовая (затрагивающая все записи т.е. с пустым условием WHERE) операция UPDATE (скажем, "UPDATE test SET field1 = field1 + 1").

Через несколько секунд после отправки этой команды человек обнаруживает ошибку и останавливает процесс: KILL <номер процесса>.

Последующее сравнение таблицы c её архивной версией (месячной давности) показывает отсутствие расхождений по полю field1.

Есть ли гарантия, что и среди остальных записей (младше одного месяца, по которым нет архива) ни одна запись не изменилась?
...
Рейтинг: 0 / 0
23.11.2013, 15:20:34
    #38475256
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
qwerp, исходя из принципов заложенных в innodb , при условии стандартных настроек, изменения убитой таким образом транзакции, не должны сохраниться.
однако, например, поискав в багтрекере можно найти много всякого разного не работающего: http://bugs.mysql.com/bug.php?id=45309, http://bugs.mysql.com/bug.php?id=68051.

"Полную гарантию может дать только господь бог и страховой полис".
...
Рейтинг: 0 / 0
23.11.2013, 15:59:57
    #38475273
qwerp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
В архивной таблице 900 млн записей, в рабочей около миллиарда. Если среди 900 млн записей никаких изменений нет, то какова вероятность, что среди остальных 100 млн записей есть изменившиеся? Вообще, в каком порядке производится обновление записей при пустом WHERE? Ведь старые записи должны обновиться раньше новых (с учётом, что операций удаления никогда не было т.е. записи находятся в том порядке, в котором добавлялись в таблицу)?
...
Рейтинг: 0 / 0
23.11.2013, 16:16:03
    #38475274
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
> Если среди 900 млн записей никаких изменений нет, то какова вероятность, что среди остальных 100 млн записей есть изменившиеся?
50%. либо изменились, либо нет.

Да откуда нам знать что там у вас за условиях, какие настройки и как оно все там на самом деле было?


>Вообще, в каком порядке производится обновление записей при пустом WHERE?
в произвольном.
...
Рейтинг: 0 / 0
23.11.2013, 16:18:43
    #38475275
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
netwind>Вообще, в каком порядке производится обновление записей при пустом WHERE?
в произвольном.
хотя нет, если речь об innodb, то в порядке первичного ключа. явного либо суррогатного.
...
Рейтинг: 0 / 0
23.11.2013, 16:25:24
    #38475278
qwerp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
Да, ещё: проведённый эксперимент (отправка такой же команды UPDATE и убой процесса) на той же машине, с той же самой субд, той же версии, с теми же настройками - показывает отсутствие всяких изменений после убоя процесса.

Вопрос в том, могли ли (с некоторой вероятностью) какие-то из 100 млн записей, которых нет в архиве, всё же измениться?
...
Рейтинг: 0 / 0
23.11.2013, 16:27:48
    #38475279
qwerp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
netwindхотя нет, если речь об innodb, то в порядке первичного ключа. явного либо суррогатного.Первичный ключ - автоинкрементный integer.
...
Рейтинг: 0 / 0
23.11.2013, 18:43:58
    #38475344
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
qwerpДа, ещё: проведённый эксперимент (отправка такой же команды UPDATE и убой процесса) на той же машине, с той же самой субд, той же версии, с теми же настройками - показывает отсутствие всяких изменений после убоя процесса.

Вопрос в том, могли ли (с некоторой вероятностью) какие-то из 100 млн записей, которых нет в архиве, всё же измениться?

Могли. С некоторой вероятностью. Хотя по задумке и не должны.

Зачем спрашивать одно и то же 10 раз ?Вы чего тут пытаетесь добиться ? Пацанам покажете ответы и тогда вас оставят в живых ?
...
Рейтинг: 0 / 0
25.11.2013, 01:48:47
    #38476083
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
netwindqwerp, исходя из принципов заложенных в innodb , при условии стандартных настроек, изменения убитой таким образом транзакции, не должны сохраниться.
однако, например, поискав в багтрекере можно найти много всякого разного не работающего: http://bugs.mysql.com/bug.php?id=45309, http://bugs.mysql.com/bug.php?id=68051.

"Полную гарантию может дать только господь бог и страховой полис".

а вот те правда жизни. Страховой полиз даёт не гарантию а обещание!
(если я беру у тебя сбор на общий телефон и сможеш им звонить когда надо - это обещание. если я оставлю взамен кожанные новые сапоги с условием - они твои если я тебе не дам общим телефоном позвонить - вот это будет гарантия!)


ну а господь бог, ...как говорят - если человек даёт обещания богу - это религия, если бог чтото обещает человеку - это психиатрия!
...
Рейтинг: 0 / 0
25.11.2013, 11:27:05
    #38476320
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
alex564657498765453,

+5. Только осталось непонятно: "психиатрия" - у того кто услышал или у бога? :)
...
Рейтинг: 0 / 0
25.11.2013, 11:40:47
    #38476343
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
InnoDB - отмена запроса
alex564657498765453, автором этой фразы был был Альберт Эйн Остап Бендер.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / InnoDB - отмена запроса / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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