[+/-]
C API コードは、MySQL
とともに配布されています。C API コードは
mysqlclient
ライブラリに格納され、C
プログラムはこのコードを使用してデータベースにアクセスできます。
MySQL
のソースディストリビューションに含まれるクライアントの多くは
C で記述されています。C API
の使用方法がわかるようなコード例を探している場合は、これらのクライアントを参考にしてください。クライアントは、MySQL
ソースディストリビューションの
clients
ディレクトリに格納されています。
他のクライアント API(Connector/J を除くすべての
API)の多くは、mysqlclient
ライブラリを使用して MySQL
サーバと通信します。このライブラリを使用すると、たとえば環境変数を参照できるので、他のクライアントプログラムとほとんどの環境変数を共用できることになります。共用できる環境変数の一覧については、項4.9. 「MySQL
クライアントサイドのスクリプトとユーティリティ」
を参照してください。
クライアントが使用できる通信バッファサイズには上限があります。内部的に割り当てられているバッファサイズ(16 キロバイト)は、最大 16 メガバイトまで自動的に増加します。バッファサイズが増加するのはバッファの要求量が増加した場合だけであり、デフォルトの最大値を増やしたからといって使用リソースが増加するわけではありません。このサイズチェックでは、誤ったクエリや通信パケットを主にチェックします。
通信バッファサイズは、SQL ステートメント 1
つ(クライアントからサーバへのトラフィック)および結果データ
1
行(サーバからクライアントへのトラフィック)を格納できるだけの大きさが必要です。各スレッドの通信バッファは、クエリやレコードを処理できるように、その最大値まで動的に拡大されます。たとえば、最大
16 メガバイトのデータを格納する
BLOB
値を処理する場合、通信バッファサイズの最大値は(サーバとクライアントの両方で)少なくとも
16
メガバイトである必要があります。クライアントのデフォルトの最大値は
16
メガバイトですが、サーバのデフォルトの最大値は
1
メガバイトです。サーバのデフォルトの最大値を増やすには、サーバの起動時に
max_allowed_packet
の値を変更します。
See 項5.5.2. 「サーバパラメータのチューニング」。
MySQL
サーバは、クエリが終わるたびに通信バッファサイズを
net_buffer_length
に減らします。クライアント側では、接続が切断されてメモリが解放されるまで、その接続に割り当てられたバッファサイズが減ることはありません。
スレッドを使用するプログラミングについては、項11.1.14. 「スレッドクライアントの作成方法」 を参照してください。同一プログラム内に "サーバー" と "クライアント" が存在する(および外部の MySQL サーバと通信しない)スタンドアロンアプリケーションの作成については、項11.1.15. 「組み込み MySQL サーバライブラリ libmysqld」 を参照してください。
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.