Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  InnoDB と memcached の組み合わせの利点

14.18.1 InnoDB と memcached の組み合わせの利点

このセクションでは、セクション14.18「InnoDB と memcached の統合」で導入された InnoDB テーブルへの memcached インタフェースの利点について説明します。InnoDB テーブルと memcached を組み合わせることで、いずれかを単独で使用した場合を上回る利点が得られます。

  • InnoDB ストレージエンジンに直接アクセスすることによって、SQL の構文解析およびプランニングのオーバーヘッドを回避できます。

  • memcached を MySQL Server と同じプロセス空間で実行することにより、リクエストを受け渡すことによるネットワークオーバーヘッドが回避されます。

  • memcached プロトコルを使用して書き込まれるデータは透過的に InnoDB テーブルに書き込まれ、MySQL SQL レイヤーを経由しません。書き込みの頻度を制御することで、重要ではないデータを更新するときに本来のパフォーマンスを高めることができます。

  • memcached プロトコルを介してリクエストされるデータは透過的に InnoDB テーブルから照会され、MySQL SQL レイヤーを経由しません。

  • 同じデータに対する後続のリクエストは InnoDB バッファープールから提供されます。バッファープールはインメモリーキャッシュを処理します。使い慣れた InnoDB 構成オプションを使用して、大量のデータを処理する操作のパフォーマンスをチューニングできます。

  • アプリケーションのタイプに応じて、非構造化データまたは構造化データを使用できます。データ用にまったく新しいテーブルを作るか、1 つ以上の既存のテーブルに NoSQL スタイルの処理をマップできます。

  • InnoDB は複数カラムの値を単一の memcached 項目値に連結したり分解したりできるため、アプリケーションで必要な文字列の構文解釈および連結の量が削減されます。たとえば、文字列値 2|4|6|8memcached キャッシュに格納されている場合、InnoDB はその値を区切り文字に基づいて分割し、結果を 4 つの数値カラムに格納します。

  • メモリーとディスク間の転送は自動的に処理されるため、アプリケーションロジックが簡素化されます。

  • データは MySQL データベースに格納されることで、クラッシュ、機能停止、および破損から保護されます。

  • レポート作成、分析、アドホッククエリー、一括ロード、マルチステップのトランザクション計算、論理和や論理積などの set 操作、および SQL の表現性と柔軟性に適したその他の操作のために、引き続き SQL を介して基礎テーブルにアクセスできます。

  • この機能を MySQL レプリケーションと組み合わせてマスターサーバー上で使用すると、NoSQL データの高可用性を保証できます。

  • memcached と MySQL を統合することにより、手間をかけずにインメモリーデータを永続的なものにでき、これを非常に多くの種類のデータに使用できます。データがすぐに消去される心配がなく、より多くの addincr、および類似の書き込み操作をアプリケーションに配置できます。キャッシュされたデータへの更新を失わずに memcached サーバーを停止および起動できます。予期しない機能停止を防ぐために、InnoDB のクラッシュリカバリ手順、レプリケーション手順、およびバックアップ手順を利用できます。

  • InnoDB が高速な主キー検索を実行する方法では、通常 memcached の単一項目クエリーに適合します。memcached プラグインによって使用される、低レベルの直接的なデータベースアクセスパスは、キー/値の検索では同等の SQL クエリーよりもはるかに効率的です。

  • 複雑なデータ構造、バイナリファイル、またはコードブロックも格納可能な文字列に変換できる memcached のシリアライズ機能によって、このようなオブジェクトをデータベースに格納する簡単な方法が提供されます。

  • 基礎データに SQL 経由でアクセスできるため、memcached データについてレポートを生成したり、複数のキーで検索または更新したり、AVG()MAX() などの関数を呼び出したりできます。これらすべての操作は、スタンドアロンの memcached ではコストがかかったり複雑になったりします。

  • 起動時に memcached にデータを手動でロードする必要はありません。アプリケーションによって特定のキーがリクエストされると、値はデータベースから自動的に取得され、InnoDB バッファープールを使用してメモリーにキャッシュされます。

  • memcached は CPU の消費が比較的少なく、メモリーフットプリントを管理しやすいため、同じシステム上で MySQL インスタンスとともに快適に実行できます。

  • 通常の InnoDB テーブルで使用されるメカニズムによってデータ完全性が強制されるため、古くなった memcached データや、キーが見つからない場合にデータベースにクエリーを実行するフォールバックロジックについて懸念する必要はありません。