Как отреагирует MariaDB, когда я попытаюсь одновременно выполнить несколько больших операций (UPDATE / READ) на столе? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть MariaDB и Windows Сервис , обращающиеся к этой БД. Для обслуживания я использую Heidi SQL.

Теперь я хочу обновить большую таблицу (8.000.000 записей) в Heidi SQL, вставив новый столбец внешнего ключа, а затем заполнение столбца значениями, используя UPDATE. Я полагаю, это может занять около 30 минут.

В течение этого времени, если пользователь захочет вставить / прочитать / удалить значения из этой таблицы через службу, что произойдет? Будет ли БД блокировать запрос? Стоит ли останавливать службу, чтобы избежать повреждения данных?

1 Ответ

0 голосов
/ 08 марта 2020

Я сам сделал пример. Кажется, база данных отвечает старыми значениями или статусом, пока операции, изменяющие данные, все еще выполняются в Хайди SQL.

Что я пробовал:

  • Я добавил новый столбец. Пока процесс добавления еще продолжался, я отправил сообщение о прочтении в мой сервис. Он ответил без отправки нового столбца. Как только операция была завершена, новый столбец также был отправлен.

  • Я заполнил новый столбец FK значениями. Во время обновления я отправил сообщение о прочтении. Служба вернула начальные значения столбца FK (0) для всех строк. После завершения операции служба отправит все новые значения.

...