キャッシュ、L2キャッシュをmybatis--

A、キャッシュMyBatisの

●MyBatisの持ちが非常に簡単にカスタマイズしてキャッシュを設定することができ、強力なクエリキャッシュ機能が含まれています。クエリの効率保存リボンを大幅に向上させることができます。

デフォルトで2つのキャッシュによって定義された●MyBatisのシステム:キャッシュ二次キャッシュ

  ○デフォルトでは、唯一のキャッシュがオンになって。(SQLSESSIONレベル・キャッシュ、ローカルキャッシュとしても知られます)

  ○手動でオープンし、設定への二次キャッシュが必要、彼がベースと名前空間レベルのキャッシュ。

  ○スケーラビリティを向上させるために、MyBatisのは、キャッシュインターフェースキャッシュを定義します。私たちは、キャッシュを実装することによって、二次キャッシュへのインタフェースをカスタマイズすることができます

 

概要:キャッシュの役割は、クエリの効率を改善することです。

 

第二に、キャッシュ

●レベルのキャッシュは、ローカルキャッシュと呼ばれています

  ○セッションデータ中にデータベースに対して同じクエリでローカルキャッシュに配置されます。

  あなたは、同じデータを取得する必要がある場合は○後、キャッシュから直接データベースを照会するために行くする必要がかかりません。

 

概要:キャッシュは、接続にこの範囲のセグメントを閉じるに接続して取得するために、ある一つだけSQLSESSION効果的な、デフォルトで有効になっています!

 

第三に、二次キャッシュ

また、グローバル・キャッシュとして知られている●二次キャッシュは、キャッシュ・スコープは、L2キャッシュの誕生ので、低すぎます。

二レベル・メモリに対応●ベースの名前空間のレベルのキャッシュ、ネームスペース(名前空間)

●作業メカニズム

  ○会話クエリデータは、このデータは、現在のセッションでキャッシュに配置されます。

  現在のセッションがクローズされている場合は○、これは二次キャッシュに保存されます。

  ○新たなセッションクエリ情報は、あなたは二次キャッシュからコンテンツを取得することができます。

  異なる○mappe単離されたデータは、で自分の対応するキャッシュ(マップ)に配置されます。

 

の二次キャッシュステップを開きます。

1.次のように、コアプロファイルの設定]タブを追加します。

    < 設定> 
        < 設定= "のCacheEnable" = "true"を/> 
    </ 設定>

 

 2. SQLマッピングファイル内の行を追加します。

< キャッシュ/>

 

また、パラメータをカスタマイズすることができます

< キャッシュ
   立ち退き= "FIFO" 
  flushInterval = "60000" 
  サイズ= "512" 
  読み取り専用= "真" />

このより高度な構成では、間隔を置いて、読み取り専用であると考えられるので、それらは異なるスレッドの変形が可能で、FIFOバッファを作成し、リフレッシュに60秒、オブジェクトまたはリストをもたらすために512個の参照まで保存し、返されたオブジェクト呼び出し側の競合。

クリアな戦略ご利用いただけます:

  • LRU  -最小は最近使用:長い間使用されていない削除しオブジェクトを。
  • FIFO  -先入れ先出し:それらを除去するためにキャッシュにオブジェクトによって順番。
  • SOFT  -ソフト参照:オブジェクト参照ルールベースのガベージコレクタ状態及びソフトを削除します。
  • WEAK  -弱参照:もっと積極的に弱参照のガベージコレクタの状態とルールに基づいて、オブジェクトを削除します。

デフォルトのパージ・ポリシーはLRUです。

flushInterval(リフレッシュ間隔)属性は、ミリ秒単位で時間の合理的な量であるべきで設定されている任意の正の整数値に設定することができます。デフォルトはリフレッシュ間隔ではないこと、設定されていない場合は、キャッシュは場合にのみ、呼び出し文に更新されます。

サイズ(参照番号)属性は、メモリリソースをキャッシュすることに留意すべき任意の正の整数、および利用可能なオブジェクトの動作環境のサイズに設定することができます。デフォルト値は1024です。

読み取り専用(読み取り専用)属性をtrueまたはfalseに設定することができます。読み取り専用キャッシュがオブジェクトインスタンスにキャッシュされたすべての発信者に対して同じに戻ります。したがって、これらのオブジェクトを変更することはできません。これは、パフォーマンスの大幅な向上を提供します。そして、読み書きキャッシュは、キャッシュされたオブジェクト(シリアライズ)のコピーを返します。いくつかの低速が、よりセキュリティのため、デフォルト値はfalseです。

 

注意:

  1.すべてのデータは、最初のセッションが提出されている場合にのみ、キャッシュに配置または閉鎖される、二次キャッシュに提出されます!

   2.二次キャッシュがオンになっている場合は、MyBatisのは二次キャッシュ内のデータを抽出するために開始します。データを二次キャッシュ内に見つからない場合は、キャッシュが再度検索します。一つは、キャッシュデータを見つけることができない、あなたは、データベースを照会するために行くとキャッシュにクエリ結果を保存します。

 

おすすめ

転載: www.cnblogs.com/bear7/p/12515105.html