私はmybatisにキャッシュがあることを知っており、デフォルトで更新を実行するとキャッシュをフラッシュします。それで、select ...を実行するとキャッシュをフラッシュするのですか?答えがノーならば、最初にselectを実行してすぐにselect select ...を実行してmybatisがデータベースにアクセスするか、キャッシュにヒットしますか?mybatisは、select ...を実行したときにキャッシュをフラッシュしますが、デフォルトで更新されますか?
0
A
答えて
0
キャッシュフラッシュのデフォルトの動作は実際に実行されたSQLのタイプはMybatisステートメントに実行されます。 flushCache
プロパティが(注釈スタイルに@Options
に)指定されていない間、SQLが、その後<select>
か@Select
にあるものは何でも
は、デフォルトの動作が適用されない:何のフラッシュを。 <update>
または@Update
の場合、キャッシュはデフォルトでフラッシュされます。
いずれにしても、SELECT
とSELECT FOR UPDATE
は異なるSQL文字列です。両方を呼び出すと、結果セットは同じですが、キャッシュは結果にSQL文字列とパラメータを関連付けます。 SQL文字列の変更=>新しいヒット、パラメータの変更=>新しいヒット。ステートメント<select id=stmt1>
と別のステートメント<select id=stmt2>
が同じSQL文字列を生成し、同じパラメーター値で呼び出された場合、同じセッション中にそれらの間でフラッシング操作が行われないと、2番目の呼び出しがキャッシュにヒットするはずです。これは、mapper.namespaceパッケージのデバッグログを有効にすることで確認できます。
キャッシュは、ORM(Hibernate ..)のように機能しません。エンティティタイプと主キーで参照されるキャッシュ。
キャッシュはセッションが終了するまで長く続きます。
セッション中に同じデータを繰り返し(同じ文/パラメータ)要求すると、次回の使用のために結果を格納する必要がなく、単に文を再度呼び出すだけでキャッシュは結果のDBへのアクセスを保存するだけです。
関連する問題
- 1. SELECT Aがフォームで変更されたときに、SELECT BのMYSQLからオプションを更新します
- 2. SELECT LAST_INSERT_ID()*が更新されました
- 3. プロセスがクラッシュしたときにOSがCPUキャッシュをフラッシュしますか?
- 4. データが更新されたときにExcelマクロを再実行します。
- 5. プロセスがコアをジャンプするときにL1キャッシュがフラッシュされますか?
- 6. Jquery Selectメニューオプションページが更新されると失敗しますか?
- 7. Chromeブラウザにキャッシュされたjavascriptを更新します
- 8. コードで実行されたときに更新クエリが更新されない
- 9. キャッシュはフラッシュされませんか?
- 10. キャッシュTTLが満了する前にコンテンツが変更された場合にキャッシュを更新します。
- 11. Prepared SELECT文は実行されますが、常に0行を返します
- 12. CppSQLiteはディスクまたはキャッシュにクエリを実行しますか?
- 13. odooで削除が実行されたときにページを更新しますか?
- 14. MongoDBクエリフィルタが更新として実行されています
- 15. Mybatisマッパーファイル、パラメータがforeach文でnullに変更されました
- 16. コンテンツビューは更新されましたが、最初にuiscrollviewがズームされたときに画面がフラッシュされました
- 17. iosでラベルが更新された後にアクションを実行します
- 18. WPF ComboBoxが変更されたときにコマンドを実行します。
- 19. 更新が実行されたときに通知する
- 20. キュウリは、新しいフィーチャーファイルが実行されたときに上書きされると報告します。
- 21. サーバーデータベースが更新されたときにsqliteデータベースを更新します。
- 22. キャッシュがフラッシュされています、なぜですか?
- 23. クエリをキャッシュした後のrails4がまだ実行されています
- 24. locationManager(_:変更を承認しました:)は、アプリを最初に実行すると実行されますか?
- 25. Swiftデフォルトのパラメータはキャッシュされた値を使用します
- 26. Scala Slickは、行が更新されたときに列を自動的に更新します。
- 27. ロード後にハッシュまたはハッシュが変更されたときにコードを実行しますか?
- 28. AngularJS 1.4.8は、モデルが更新されたときにselectに空のオプションを作成します
- 29. PostInsertEventListenerは、DBが更新される前に実行されました
- 30. UIViewフレームのサイズが変更されたときにメソッドを実行します。
ありがとうございます。私は別の質問があります。@ selectでid * = 1のテーブルからselect *を実行すると、結果はキャッシュに保存されます。同じセッションで同じsqlを2回実行するのか、2回目にキャッシュにアクセスするのか、DBにアクセスするのだろうかと思います。 2回目にキャッシュにヒットした場合は、間違っていることがあります。 –
あなたは正しいです、私はその点について答えを明確にしました。 – blackwizard