[+/-]
O código da API C é distribuído com o MySQL. Ele está
incluído na biblioteca mysqlclient
e permite
programas em C a fazer acesso em banco de dados.
Muitos dos clientes na distribuição fonte do MySQL está escrito
em C. Se você estiver procurando por exemplos que demonstrem como
utilizar a API C, dê uma olhada neste clientes. Você pode
encontrá-los no diretório clients
na
distribuição fonte do MySQL.
A maioria das outras clientes API (todos exceto Connector/J) usam
a biblioteca mysqlclient
para se comunicar com
o servidor MySQL. Isto significa que, por exemplo, você pode
tirar vantagem das mesmas variáveis de ambientes que são
utilizados por outros programas clientes, pois eles referênciados
pela biblioteca. Veja Secção 4.9, “Utilitários e Scripts do Lado do Cliente MySQL”, para
uma lista destas variáveis.
O cliente tem um tamanho máximo de buffer de comunicação. O tamanho do buffer que é alocado inicialmente (16K bytes) é automaticamente aumentado para o tamanho máximo (o máximo é 16M). Como o tamanho do buffer é aumentado somente como autorização de demanda, o simples aumento do limite máximo padrão não faz, por si só, que mais recursos sejam usado. Esta verificação de tamanho é na maioria verificações por consultas erradas e pacotes de comunicações.
O buffer de comunicação deve ser grande o suficiente para conter
uma única instrução SQL (para tráfego cliente-servidor) e uma
linha de dado retornado (para trafico servidor-cliente). Cada
buffer de comunicação de thread é dinamicamente aumentado para
manipular qualquer consulta ou linha até o limite máximo. Por
exemplo, se você tiver valores BLOB
que
contenham até 16M de dados, você deve ter um limite de buffer de
comunicação de pelo menos 16M (no servidor e no cliente). A
máximo padrão do cliente '16M. mas o máximo padrão no servidor
é 1M. Você pode aumentar iso alterando o valor do parâmetro
max_allowed_packet
quando o servidor é
iniciado. See Secção 5.5.2, “Parâmetros de Sintonia do Servidor”.
O servidor MySQL encolhe cada buffer de comunicação para
net_buffer_length
bytes depois de cada
consulta. Para clientes, o tamanho do buffer associado com um
conexão não é reduzido até que a conexão seja fechada, quando
a memória de tempo do cliente é recuperada.
Para programação com threads, veja Secção 12.1.14, “Como Fazer um Cliente em Threads”. Para criar uma aplicação stand-alone que inclua o "servidor" e o "cliente" no mesmo programa (e que não comunica com um servidor MySQL externo), veja Secção 12.1.15, “libmysqld, a Biblioteca do Servidor Embutido MySQL”.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.