このセクションでは、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|8
を memcached キャッシュに格納し、InnoDB
でセパレータ文字に基づいて値を分割してから、4 つの数値カラムに結果を格納できます。メモリーとディスク間の転送は自動的に処理されるため、アプリケーションロジックが簡素化されます。
データは MySQL データベースに格納されることで、クラッシュ、機能停止、および破損から保護されます。
基礎となる
InnoDB
テーブルには、レポート、分析、非定型クエリー、バルクロード、マルチステップトランザクション計算、論理和や交差などの集合演算、および SQL の表現と柔軟性に適したその他の操作のために、SQL を介してアクセスできます。MySQL レプリケーションと組み合せてソースサーバーで
daemon_memcached
プラグインを使用することで、高可用性を確保できます。
memcached と MySQL の統合により、インメモリーデータを永続的にする方法が提供されるため、より重要な種類のデータに使用できます。 データが失われる可能性があることを気にすることなく、アプリケーションでより多くの
add
、incr
および同様の書込み操作を使用できます。 キャッシュされたデータに対する更新を失わずに、memcached サーバーを停止および起動できます。 予期しない停止から保護するために、InnoDB
のクラッシュリカバリ、レプリケーションおよびバックアップ機能を利用できます。InnoDB
が高速な主キー検索を実行する方法では、通常 memcached の単一項目クエリーに適合します。daemon_memcached
プラグインで使用される直接の低レベルのデータベースアクセスパスは、同等の SQL クエリーよりもキー値ルックアップの方がはるかに効率的です。複雑なデータ構造、バイナリファイル、またはコードブロックも格納可能な文字列に変換できる memcached のシリアライズ機能によって、このようなオブジェクトをデータベースに格納する簡単な方法が提供されます。
基礎となるデータには SQL を介してアクセスできるため、レポートの作成、複数のキーにわたる検索または更新、memcached データに対する
AVG()
やMAX()
などの関数のコールが可能です。 これらの操作はすべて、memcached を単独で使用するとコストがかかり、複雑になります。起動時に memcached にデータを手動でロードする必要はありません。 特定のキーがアプリケーションによってリクエストされると、値はデータベースから自動的に取得され、
InnoDB
buffer pool を使用してメモリーにキャッシュされます。memcached は CPU の消費が比較的少なく、メモリーフットプリントを管理しやすいため、同じシステム上で MySQL インスタンスとともに快適に実行できます。
データ整合性は通常の
InnoDB
テーブルに使用されるメカニズムによって強制されるため、キーが欠落している場合にデータベースをクエリーするために、失効した memcached データやフォールバックロジックについて心配する必要はありません。