Найден очень простой пример, который будет представлять это поведение:
DECLARE Existing INT DEFAULT 0;
SELECT SQL_CALC_FOUND_ROWS name FROM users WHERE id = pid LIMIT 1;
SELECT FOUND_ROWS() INTO Existing;
Select Existing;
Это вернет оба выбора, вместо того, чтобы просто показывать Существующее (то же самое для выходных переменных).
У меня есть сохраненныйпроцедура, которая имеет сотни выборок, я хочу получить только одну информацию о пользователе, которая определяется на основе всех этих различных выборок и т. д.
Я не хочу получать 3 МБ бесполезных данных из БД, я просто хочуВозврат 16 байтов, больше ничего.
Возможно ли это с MySQL?Некоторое время я решил перейти на MySQL, и мы провели большую подготовку к архитектуре, серверам и т. Д., Много месяцев работы.
Теперь я хочу перенести хранимую процедуру, нокажется, основано на всех других вопросах, что MySQL не заботится о бережливом подходе и возвращает все эти данные, делая хранимые процедуры практически бесполезными (по крайней мере, когда вы работали с большими базами данных SQL Server, используя хранимые процедуры / функции, и все работает как выожидать, хранить все внутренние данные, выбирать и т. д., где они принадлежат, не возвращать их клиенту).
Я нашел информацию, что она должна поддерживаться клиентом, но это противлюбой вид наилучших практик программирования (т. е. отправка бесполезных данных MB между серверами, в то время как вам нужно всего 4 байта, основная причина использовать хранимые процедуры вместо написания кода, например, в C # (так как вам нужно было бы сделать сотни вызовов в БД, чтобы получитьт.е. обзор аккаунта)).
Я что-то упустил?
Я хочу вызвать хранимую процедуру, которая может выполнять сотни вызовов другой хранимой процедуры, обрабатывать, например, 100 МБ данных, и возвращать только выходные переменные (т. Е. 5, обеспечивающие обзор учетной записи) ...
У нас также есть движок ИИ, который все еще использует SQL Server, и там вы не можете позволить себе получать десятки МБ на единицу, если вам приходится делать это миллионы раз в день.Это сломало бы все приложение ...
Пожалуйста, только скажите мне, может ли MySQL выводить результат хранимой процедуры в выбранные переменные.Мне плевать на мегабайты бесполезных для меня данных.Я не спрашиваю о счетах или что-нибудь еще.Я говорю о сложной логике, и я хочу знать только, может ли MySQL делать то, что делает Microsoft SQL Server?(Хранимая процедура возвращает выходной муравей, поэтому у вас есть выходной параметр, поэтому хранимая процедура существует)