LOG

MySQL覚書

覚書メモ

ストレージエンジン

データベースのデータの読み書きをする「InnoDB」や「MyISAM」というものがある。
MySQL5.5からはデフォルトでInnoDB
MySQLの論理構造は以下の通り

         リクエスト
             ↓
-------------------------------------- MySQL
             ↓
      コネクションプール
       ↓          ↓
    パーサー → キャッシュ
       ↓
ストレージエンジン
       ↓
ストレージファイル

それぞれ以下のことを行う

各項目の処理内容
コネクションプール認証や接続、スレッド処理
パーサーSQLクエリの解析、最適化
キャッシュSQLクエリと結果をキャッシュ
ストレージエンジンデータの読み書き
ストレージファイルデータの保存先

InnoDBとMyISAMの違い

InnoDB
ロック方式(粒度)レコードロック
>全文検索不可(MySQL5.6から可能
トランザクション可能
キャッシュ管理MySQL
MyISAM
ロック方式(粒度)テーブルロック
全文検索可能
トランザクション不可
キャッシュ管理OS

メモリ

バッファ(メモリ領域)
グローバルバッファmysqlデーモン全体で一つだけ確保されるバッファ
スレッドバッファmysqlのスレッド(コネクション)単位で確保されるバッファ

※ デーモン(deamon[守護神]) → メモリ上に常駐して様々なサービスを提供するプロセス

メモリの設定項目などはストレージエンジンによって変わる

全体的なメモリ使用量を計算

グローバルバッファ + (スレッドバッファ × コネクション数) = メモリ使用量

参考URL