Spec-Zone .ru
спецификации, руководства, описания, API

22.8.8. C API Готовые Операторы

Протокол клиента/сервера MySQL предусматривает использование готовых операторов. Эта возможность использует MYSQL_STMT структура данных обработчика оператора, возвращенная mysql_stmt_init() функция инициализации. Подготовленное выполнение является эффективным способом выполнить оператор не раз. Оператор сначала анализируется, чтобы подготовить это к выполнению. Затем это выполняется один или более раз в более позднее время, используя дескриптор оператора, возвращенный функцией инициализации.

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

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

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

Для списка SQL-операторов, которые могут использоваться в качестве подготовленных операторов, см. Раздел 13.5, "Синтаксис SQL для Готовых Операторов".

Метаданные изменяются на таблицы или просматривают упомянутый готовыми операторами, обнаруживаются и вызывают автоматическую переподготовку оператора, когда это затем выполняется. Для получения дополнительной информации см. Раздел 8.9.4, "Кэширование Готовых Операторов и Сохраненных Программ".