В настоящее время мы делаем много небольших запросов. Мы выполняем запрос, читаем результаты, а затем выполняем следующий. Поскольку сетевые запросы стоят много времени, пинг-понг становится очень медленным.
Именно поэтому мы хотим выполнять несколько запросов одновременно, отправляя все данные, которые сервер SQL должен знать, и извлекает только один результат (состоящий из нескольких наборов результатов).
Мы обнаружили, что QSqlQuery в Qt 5.14.1 имеет функцию nextResult()
, но в документации ( ссылка ) говорится:
Некоторые базы данных могут выполнять все операторы одновременно , в то время как другие могут задерживать выполнение до фактического доступа к набору результатов , [...].
МОЙ ВОПРОС:
Итак, MySql Сервер 8.0 задерживает выполнение до фактического доступа к набору результатов? Если это так, то мы все еще есть пинг-понг для каждого запроса, верно? Это было бы очень медленно.
PS Наше текущее решение иметь всего один пинг-понг состоит в объединении различных наборов результатов (что приводит к блочной диагональной матрице) со множеством нулевых значений), и Этот вопрос призван найти лучший способ сделать это.