Как обрабатывать параллельный запрос к базе данных или Как выполнить короткий SQL-запрос, пока выполняется длительный запрос - PullRequest
0 голосов

Учтите, что существует пользовательский запрос, для которого требуется выполнение запроса SQL на внутреннем сервере, а полученные в результате данные должны быть возвращены в качестве ответа, но пользователь уже инициировал другой запрос, состоящий из очень длительного выполнения запроса SQL.

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

  1. Можно ли достичь такого параллельного выполнения, настроив сервер базы данных?
  2. Можно ли использовать потоки Java для достижения этой цели?Это правильный выбор?

1 Ответ

0 голосов
/ 09 мая 2019

Большинство баз данных поддерживают параллельное выполнение операторов, обычно с Multiversion Concurrency Control (MVCC) или другим механизмом. Клиент обычно может открывать несколько соединений с сервером базы данных и запускать разные наборы состояний SQL в каждом соединении.

Вам нужно проверить, как ваш сервер баз данных обрабатывает параллелизм, вы можете начать, взглянув на этот ответ для MySQL . Затем изучите документы Основы JDBC , чтобы понять, как открыть несколько соединений. Там будут ошибки, например уровни изоляции транзакции или обработка блокировки, которая будет зависеть от вашего варианта использования.

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