Вопрос: можно вызвать хранимые процедуры параллельно, чтобы увеличить скорость выполнения.
A: Короткий ответ: нет. Нет встроенного механизма (в MySQL), который заставит хранимую процедуру работать «параллельно». Чтобы добиться параллельной обработки, приложение должно быть спроектировано таким образом, используя множественные подключения к MySQL, разделяя обработку на куски, которые могут выполняться параллельно, и координируя эти процессы.
Что касается «увеличения скорости выполнения», вам действительно нужно сначала определить, что вызывает медленность.
Если проблема связана с хранением данных, то параллелизация процесса, скорее всего, не приведет к увеличению скорости выполнения.
Если в процедуре используется курсор, для обработки заданной строки по-агонизирующей строке (RBAR) и запуска отдельного оператора INSERT для каждой строки, этот процесс должен быть мучительно медленным. В этом случае вам действительно нужно изучить, как получить строки, обработанные в наборах с разумным размером.
Также возможно, что в процедуре выполняются операторы SQL, которые написаны так, что MySQL не позволяет эффективно использовать доступные индексы. Или соответствующие индексы могут быть недоступны.
Прежде чем начать путь параллельного процесса, важно понять, каково фактическое узкое место. Выполнение процесса «параллельно» не обязательно увеличивает скорость выполнения.
Можете ли вы не просто назвать их отдельно? От разных клиентских процессов? –
Спасибо за ответ @JustinMcAleer – kishorre
Но мой вопрос в том, как назвать их разными клиентами @ JustinMcAleer – kishorre