遅延読み込み、キャッシュ、L2キャッシュ

--- ---復元コンテンツ始まります

コンセプト:

また、遅延ロードと呼ばれる負荷のMyBatisの遅延は、テーブル実行手段クエリに関連付けられているが、関連したオブジェクトに設定規則に従って遅延が延期 SELECTクエリを。クエリの多くを実行する場合たとえば、クエリは一つだけ、マルチパーティのプログラムがデータを必要とするとき、その後、MyBatisのSQL文のクエリを送信、この方法は遅延ロード圧力データベースを減らすことができます。MyBatisの遅延ローディング関連付けられたオブジェクトにのみクエリが設定された遅延を有しメインオブジェクトは、直接クエリを実行ロードされます。

ロード機会:

  • 直接ロード:メインのオブジェクトのロードが完了した select文は、すぐに関連するオブジェクトを選択するには、クエリを実行します。
  • 侵略的な遅延: クエリがプライマリロードオブジェクト上で実行されたときに、関連付けられたオブジェクトに対してクエリを実行しません。あなたがメインのロードオブジェクトの詳細プロパティにアクセスしたい場合でも、関連するオブジェクトがすぐに実行されます選択クエリを。
  • 深遅延: クエリがプライマリロードオブジェクト上で実行されたときに、関連付けられたオブジェクトに対してクエリを実行しません。オブジェクトはの主な内容にアクセスするためにロードされたときには、関連するオブジェクトを実行しません選択クエリを。本当の詳細は、関連するオブジェクトにアクセスするときにのみ、selectクエリは、関連するオブジェクト上で実行されます。

注意:アプリケーションの遅延ロードを:クエリクエリを別々に行わなければならない主要なロードオブジェクトに関連付けられているオブジェクトを選択合流マルチテーブルを使用して行うことができない文を選択クエリを。マルチテーブルクエリに参加しているので、本質的には、テーブル上のクエリは、ポスト複数のテーブル表でのクエリが形成されて参加しました。すべての情報は、1回のクエリを複数のテーブル外になります。

侵襲的な遅延ロードの設定:

MyBatisの-config.xmlの大プロファイル、最初のターンオン遅延ローディングし、その後設定をロード侵入

主な目的は、への呼び出しだけでなく、ロードされたときに SQLを

 

情報が呼び出されたときには、主に2つのオブジェクトがロードされています SQL

 

深遅れロード:  

    MyBatisの-config.xmlの大きい構成ファイル、最初の遅延ロードを開き、負荷の深さを設定します

     

     

    あなたがメインのオブジェクトがロードされて呼び出すときに、第2の負荷は実行されません SQLを

     

     

    2番目のクエリは、より多くの情報の呼び出しのために関連するオブジェクトを実行します

    

    

キャッシュ:  

 クエリキャッシュの使用は、主に照会アクセスの速度を向上させます。ユーザデータクエリプロセスは、もは​​やそれによってアクセス速度を向上させる、クエリデータデータベースからの結果を毎回取得していない、同じ簡略化のために繰り返されます。

    A. キャッシュ部門

        スコープとライフサイクルクラス分割バッファによると、次のとおりです。

          レベルのキャッシュ(大プロファイル設定ノード属性)

           

          二次キャッシュ

          

II。キャッシュの説明

    MyBatisのクエリキャッシュの範囲は、マッピングファイルに基づいて名前空間部門、同じ名前空間マッパー同じキャッシュ領域にクエリデータ。異なる名前空間の非干渉のデータ。

    それはすべてに基づいて、キャッシュまたは二次キャッシュされているかどうか、名前空間別々に保管。

    二次キャッシュ、ことを除いて、 SQLSESSIONは一度閉じ、SQLSESSIONのデータが存在しない、すなわち、キャッシュ中止が存在します。二次キャッシュは、アプリケーション全体のライフサイクルと同期している、とSQLSESSIONは無関係閉じられています。換言すれば、キャッシュは、同じスレッドである同じSQLSESSION)との間でデータを共有するため、異なるスレッドで二次キャッシュ異なるSQLSESSION)との間でデータを共有します。

III。キャッシュは、証明するために存在します

同じセッション( SQLSESSION )同じ2つの実行SQLをいくつか送信するために、コンソールを観察し、SQLを

 

基礎となる実装は、キャッシュで地図地図キーを使用し、クエリに基づいているORM 、別のクエリに基づいて異なるフレームワークを、MyBatisののためのクエリの基礎SQL ID + SQL 文、Hibernateはクエリオブジェクトの結果であるID

IV。追加および削除は、キャッシュ上の変更に影響を与えます

  

   

   

   

V. 結論キャッシュ

  1. MyBatisのフレーム自然の統合キャッシュ
  2. キャッシュクエリの基礎 SQLID + SQLの声明
  3. 追加および削除は、キャッシュをクリアします

二次キャッシュ

  A. 内蔵の二次キャッシュの構成

      1. 設定ファイル大二次キャッシュを開き、デフォルトでは、開いています

        

      2. ではマッパー小さな設定ファイル、キャッシュタグを追加する<キャッシュ/>

        

         

       3. エンティティが達成するためにシリアライズ(マーカーインターフェイスを:方法はありません)

        

         

       4. テスト

        

         

    II。二次キャッシュ変更の欠失の影響

        同様にCRUD二次キャッシュのフラッシュ

           

           

      III。閉じる(もはや閉じた後に実行キャッシュをリフレッシュするためのSQL クエリを)

          対応するノードの構成に小さな付加および欠失では、添加 flushCacheにはある

              

              

               

               

    IV。クエリキャッシュは適用されません。

        アプリケーションキャッシュの代表が再度送信されません SQLのクエリデータを

           

           

おすすめ

転載: www.cnblogs.com/ws1149939228/p/11672429.html