проблема с алгоритмом обхода дерева предзаказа в php - PullRequest
0 голосов
/ 08 января 2010

Я работал над «Алгоритмом обхода дерева предзаказа» как часть моей ежедневной задачи. Я столкнулся с тем, что для MySQL нам нужно заблокировать таблицу, а после вставки или удаления любой записи нам нужно разблокировать конкретную таблицу (хотя я справился со своей задачей) .... Мне просто интересно, почему мы это делаем ? Кроме этого случая, где еще вы думаете, что это может быть использовано в случае его частого использования?

1 Ответ

1 голос
/ 08 января 2010

Вам нужно заблокировать таблицу, если вы не хотите, чтобы ее содержимое изменилось, пока вы делаете то, что вы есть.

Так что в вашем случае я предполагаю, что вы не хотите, чтобы таблица изменялась, пока вы выполняете свой обход (я предполагаю, что ваши табличные данные образуют некое дерево).

Таким образом, у вас есть один вариант: заблокировать таблицу, скопировать ее содержимое в другую таблицу, разблокировать ее и работать с копией.

Если исходная таблица достаточно мала, вы можете даже поместить временную таблицу в память.

Осторожно: блокировка таблиц может привести к тому, что другие сценарии, использующие таблицу, будут ждать! Будьте уверены, что ваши операции не займут много времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...