by shigemk2

当面は技術的なことしか書かない

MySQLのコンポーネント

データベースは複雑なしくみを持ったソフトウェアだが、
OS上で実行されるほかのアプリケーションと扱いは何ら変わらない。

コマンドがあって、ライブラリがあって、コマンドはライブラリとつながっていて、
ライブラリはカーネルとつながっている。

MySQLは、本体であるMySQLサーバー(mysqldプロセス)のほかに、MySQLサーバーと
やりとりするためのクライアントプログラム、MySQLの環境を管理するためのツールコマンド群、
MySQLの各種ライブラリから構成されている。

MySQLサーバーの内部はいくつかのパーツに分かれており、
それぞれが役割を分担している。
MySQLサーバー内のパーツは、独立したコマンドやプロセスではなく、1つの
mysqldプロセスの中にすべてが収まっている。
この分担は、内部的にはマルチスレッドを利用して実現している。

そして、MySQLサーバーとクライアントは、TCP/IPもしくはソケットファイルで通信を行う。
1つのクライアントに対し、MySQLサーバー内部では1つのスレッドが新たに割り当てられる。
MySQLサーバーのインターフェイスをクライアント側で受け持つのが、libmysqlclientである。
このlibmysqlclientが、サーバーとクライアントプログラムの橋渡しとなる。

P134

MySQL徹底入門 第3版 ?5.5新機能対応?

MySQL徹底入門 第3版 ?5.5新機能対応?