Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


このページは機械翻訳したものです。

15.20.1 InnoDB memcached プラグインの利点

このセクションでは、daemon_memcached プラグインの利点について概説します。 InnoDB テーブルと memcached を組み合せると、いずれか一方を単独で使用するよりも利点があります。

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

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

  • memcached プロトコルを使用して書き込まれたデータは、MySQL SQL レイヤーを経由せずに InnoDB テーブルに透過的に書き込まれます。 クリティカルでないデータの更新時に RAW パフォーマンスを向上させるために、書込みの頻度を制御できます。

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

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

  • アプリケーションのタイプに応じて、非構造化データまたは構造化データを使用できます。 データ用に新しいテーブルを作成するか、既存のテーブルを使用できます。

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

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

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

  • 基礎となる InnoDB テーブルには、レポート、分析、非定型クエリー、バルクロード、マルチステップトランザクション計算、論理和や交差などの集合演算、および SQL の表現と柔軟性に適したその他の操作のために、SQL を介してアクセスできます。

  • MySQL レプリケーションと組み合せてソースサーバーで daemon_memcached プラグインを使用することで、高可用性を確保できます。

  • memcached と MySQL の統合により、インメモリーデータを永続的にする方法が提供されるため、より重要な種類のデータに使用できます。 データが失われる可能性があることを気にすることなく、アプリケーションでより多くの addincr および同様の書込み操作を使用できます。 キャッシュされたデータに対する更新を失わずに、memcached サーバーを停止および起動できます。 予期しない停止から保護するために、InnoDB のクラッシュリカバリ、レプリケーションおよびバックアップ機能を利用できます。

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

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

  • 基礎となるデータには SQL を介してアクセスできるため、レポートの作成、複数のキーにわたる検索または更新、memcached データに対する AVG()MAX() などの関数のコールが可能です。 これらの操作はすべて、memcached を単独で使用するとコストがかかり、複雑になります。

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

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

  • データ整合性は通常の InnoDB テーブルに使用されるメカニズムによって強制されるため、キーが欠落している場合にデータベースをクエリーするために、失効した memcached データやフォールバックロジックについて心配する必要はありません。