Функция Qt SQL `nextResult` для MySQL Сервер 8.0: задержка выполнения для набора результатов? - PullRequest
0 голосов
/ 12 апреля 2020

В настоящее время мы делаем много небольших запросов. Мы выполняем запрос, читаем результаты, а затем выполняем следующий. Поскольку сетевые запросы стоят много времени, пинг-понг становится очень медленным.

Именно поэтому мы хотим выполнять несколько запросов одновременно, отправляя все данные, которые сервер SQL должен знать, и извлекает только один результат (состоящий из нескольких наборов результатов).

Мы обнаружили, что QSqlQuery в Qt 5.14.1 имеет функцию nextResult(), но в документации ( ссылка ) говорится:

Некоторые базы данных могут выполнять все операторы одновременно , в то время как другие могут задерживать выполнение до фактического доступа к набору результатов , [...].

МОЙ ВОПРОС:

Итак, MySql Сервер 8.0 задерживает выполнение до фактического доступа к набору результатов? Если это так, то мы все еще есть пинг-понг для каждого запроса, верно? Это было бы очень медленно.

PS Наше текущее решение иметь всего один пинг-понг состоит в объединении различных наборов результатов (что приводит к блочной диагональной матрице) со множеством нулевых значений), и Этот вопрос призван найти лучший способ сделать это.

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