|
|
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
Есть таблица InnoDB с миллиардом записей. С ней ошибочно производится массовая (затрагивающая все записи т.е. с пустым условием WHERE) операция UPDATE (скажем, "UPDATE test SET field1 = field1 + 1"). Через несколько секунд после отправки этой команды человек обнаруживает ошибку и останавливает процесс: KILL <номер процесса>. Последующее сравнение таблицы c её архивной версией (месячной давности) показывает отсутствие расхождений по полю field1. Есть ли гарантия, что и среди остальных записей (младше одного месяца, по которым нет архива) ни одна запись не изменилась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 14:48:46 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
qwerp, исходя из принципов заложенных в innodb , при условии стандартных настроек, изменения убитой таким образом транзакции, не должны сохраниться. однако, например, поискав в багтрекере можно найти много всякого разного не работающего: http://bugs.mysql.com/bug.php?id=45309, http://bugs.mysql.com/bug.php?id=68051. "Полную гарантию может дать только господь бог и страховой полис". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 15:20:34 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
В архивной таблице 900 млн записей, в рабочей около миллиарда. Если среди 900 млн записей никаких изменений нет, то какова вероятность, что среди остальных 100 млн записей есть изменившиеся? Вообще, в каком порядке производится обновление записей при пустом WHERE? Ведь старые записи должны обновиться раньше новых (с учётом, что операций удаления никогда не было т.е. записи находятся в том порядке, в котором добавлялись в таблицу)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 15:59:57 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
> Если среди 900 млн записей никаких изменений нет, то какова вероятность, что среди остальных 100 млн записей есть изменившиеся? 50%. либо изменились, либо нет. Да откуда нам знать что там у вас за условиях, какие настройки и как оно все там на самом деле было? >Вообще, в каком порядке производится обновление записей при пустом WHERE? в произвольном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 16:16:03 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
netwind>Вообще, в каком порядке производится обновление записей при пустом WHERE? в произвольном. хотя нет, если речь об innodb, то в порядке первичного ключа. явного либо суррогатного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 16:18:43 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
Да, ещё: проведённый эксперимент (отправка такой же команды UPDATE и убой процесса) на той же машине, с той же самой субд, той же версии, с теми же настройками - показывает отсутствие всяких изменений после убоя процесса. Вопрос в том, могли ли (с некоторой вероятностью) какие-то из 100 млн записей, которых нет в архиве, всё же измениться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 16:25:24 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
netwindхотя нет, если речь об innodb, то в порядке первичного ключа. явного либо суррогатного.Первичный ключ - автоинкрементный integer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 16:27:48 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
qwerpДа, ещё: проведённый эксперимент (отправка такой же команды UPDATE и убой процесса) на той же машине, с той же самой субд, той же версии, с теми же настройками - показывает отсутствие всяких изменений после убоя процесса. Вопрос в том, могли ли (с некоторой вероятностью) какие-то из 100 млн записей, которых нет в архиве, всё же измениться? Могли. С некоторой вероятностью. Хотя по задумке и не должны. Зачем спрашивать одно и то же 10 раз ?Вы чего тут пытаетесь добиться ? Пацанам покажете ответы и тогда вас оставят в живых ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2013, 18:43:58 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
netwindqwerp, исходя из принципов заложенных в innodb , при условии стандартных настроек, изменения убитой таким образом транзакции, не должны сохраниться. однако, например, поискав в багтрекере можно найти много всякого разного не работающего: http://bugs.mysql.com/bug.php?id=45309, http://bugs.mysql.com/bug.php?id=68051. "Полную гарантию может дать только господь бог и страховой полис". а вот те правда жизни. Страховой полиз даёт не гарантию а обещание! (если я беру у тебя сбор на общий телефон и сможеш им звонить когда надо - это обещание. если я оставлю взамен кожанные новые сапоги с условием - они твои если я тебе не дам общим телефоном позвонить - вот это будет гарантия!) ну а господь бог, ...как говорят - если человек даёт обещания богу - это религия, если бог чтото обещает человеку - это психиатрия! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 01:48:47 |
|
||
|
InnoDB - отмена запроса
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, +5. Только осталось непонятно: "психиатрия" - у того кто услышал или у бога? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 11:27:05 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38475273&tid=1835665]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
213ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 508ms |

| 0 / 0 |
