MySQL- Руководство разработчика

              

MySQL C API


Код C API распространяется в комплекте с MySQL. Он включен в библиотеку mysqlclient и позволяет программам на C обращаться к базе данных.

Многие клиенты в дистрибутиве исходного кода MySQL написаны на C. Если Вы ищете примеры, которые показывают, как использовать C API, посмотрите код этих клиентов. Их можно найти в каталоге clients дистрибутива исходного кода MySQL.

Большинство других клиентских API (кроме поддержки Java) использует библиотеку mysqlclient, чтобы связаться с сервером MySQL. Это означает, что, например, Вы можете воспользоваться большинством системных переменных, которые используются другими программами потому, что реально они вызваны из библиотеки.

Пользователь имеет максимальный размер буфера связи. Размер буфера, который распределен первоначально (16 килобайт), автоматически увеличивается до максимального размера (максимум 16 мегабайт). Поскольку размеры буфера растут только по запросу, просто увеличивая заданное по умолчанию максимальное ограничение, Вы не заставите большее количество ресурсов использоваться. Эта проверка размера обычно применяется в сложных ситуациях.

Буфер связи должен быть достаточно большим, чтобы хранить одиночную инструкцию SQL (для трафика "клиент-на сервер") и одну строку возвращенных данных (для трафика "сервер-на-клиент"). Буфер связи каждого потока будет динамически расширен до максимального ограничения, чтобы обработать любой запрос или строку. Например, если Вы имеете значения BLOB, которые содержат до 16M данных, Вы должны иметь ограничение буфера связи по крайней мере в 16M (на клиенте и на сервере сразу). Заданный по умолчанию максимум пользователя равен 16M, но заданный по умолчанию максимум сервера равен всего 1M. Вы можете увеличивать это, меняя значение параметра max_allowed_packet при запуске сервера.

Сервер MySQL сокращает каждый буфер связи до net_buffer_length байт после каждого запроса. Для клиентуры размер буфера, связанного с подключением, не будет уменьшен, пока подключение не будет закрыто.

Для программирования с потоками, обратитесь к разделу "2.8 Как делать поточные клиенты". Для создания автономной прикладной программы, которая включает клиент и сервер в той же самой программе (и не связывается с внешним сервером MySQL) обратитесь к разделу "2.9 libmysqld, библиотека встроенного сервера MySQL".




Содержание  Назад  Вперед