Rumah  >  Artikel  >  Java  >  Apakah cache tahap pertama dan cache tahap kedua mybatis?

Apakah cache tahap pertama dan cache tahap kedua mybatis?

百草
百草asal
2024-01-15 13:44:37578semak imbas

Cache peringkat pertama Mybatis didayakan secara lalai dan berada pada tahap SqlSession. Ini bermakna berbilang pertanyaan dalam SqlSession yang sama akan mengambil kesempatan daripada tahap caching ini. Cache peringkat pertama terutamanya menyimpan hasil pertanyaan. Apabila melaksanakan operasi pertanyaan, MyBatis akan menyimpan hubungan pemetaan antara pernyataan pemetaan dan hasil pertanyaan, serta data hasil pertanyaan dalam cache. Cache peringkat kedua mybatis adalah berbeza daripada cache peringkat pertama Cache peringkat kedua dikongsi sepanjang keseluruhan aplikasi, tidak seperti cache peringkat pertama dalam setiap SqlSession dan sebagainya.

Apakah cache tahap pertama dan cache tahap kedua mybatis?

Sistem pengendalian tutorial ini: sistem Windows 10, komputer DELL G3.

MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang menyokong SQL tersuai, prosedur tersimpan dan pemetaan lanjutan. Dalam MyBatis, caching ialah kaedah pengoptimuman yang digunakan untuk meningkatkan prestasi capaian data. MyBatis menyediakan mekanisme cache dua peringkat, iaitu cache peringkat pertama dan cache peringkat kedua.

Cache Tahap 1:

Cache Tahap 1 didayakan secara lalai dan ialah tahap SqlSession. Ini bermakna berbilang pertanyaan dalam SqlSession yang sama akan menggunakan tahap cache ini. Cache peringkat pertama terutamanya menyimpan hasil pertanyaan. Apabila melaksanakan operasi pertanyaan, MyBatis akan menyimpan hubungan pemetaan antara pernyataan pemetaan dan hasil pertanyaan, serta data hasil pertanyaan dalam cache. Jika pernyataan SQL yang sama dilaksanakan semula, MyBatis akan terlebih dahulu menyemak sama ada hubungan pemetaan dan data hasil pernyataan SQL wujud dalam cache peringkat pertama Jika ia wujud, ia akan secara langsung mengembalikan hasil dalam cache, mengelakkan pertanyaan berulang pangkalan data.

Kitaran hayat cache peringkat pertama adalah sama seperti SqlSession. Apabila SqlSession ditutup atau dikosongkan, cache peringkat pertama juga akan dikosongkan. Perlu diingatkan bahawa cache peringkat pertama dikongsi dalam transaksi, iaitu, berbilang operasi dalam transaksi yang sama boleh berkongsi data dalam cache peringkat pertama. Walau bagaimanapun, cache peringkat pertama bagi urus niaga yang berbeza adalah bebas dan data cache antara urus niaga tidak akan menjejaskan satu sama lain.

Cache peringkat kedua:

Tidak seperti cache peringkat pertama, cache peringkat kedua dikongsi sepanjang aplikasi Ia bukan seperti cache peringkat pertama yang wujud secara bebas dalam setiap SqlSession. Cache peringkat kedua boleh dikongsi oleh berbilang SqlSession, jadi ia juga dipanggil cache global. Ini bermakna jika SqlSession berbeza melaksanakan pernyataan SQL yang sama, mereka boleh mengambil data daripada cache peringkat kedua dan bukannya menanya semula pangkalan data. Ini meningkatkan lagi prestasi capaian data dan mengurangkan beban pangkalan data.

Cache peringkat kedua menyimpan set hasil pertanyaan SQL, bukan hubungan pemetaan antara pernyataan pemetaan dan hasil pertanyaan. Ini bermakna bahawa cache tahap kedua adalah berdasarkan hasil pertanyaan, bukan pernyataan SQL. Oleh itu, walaupun dua pernyataan SQL berbeza mengembalikan set hasil yang sama, mereka tidak boleh berkongsi data dalam cache peringkat kedua.

Untuk menggunakan cache peringkat kedua, anda perlu mendayakannya dalam fail konfigurasi global MyBatis dan mengkonfigurasi tag yang sepadan dalam fail pemetaan yang perlu dicache. Perkara lain yang perlu diambil perhatian ialah memandangkan cache peringkat kedua dikongsi di seluruh aplikasi, akses serentak dan isu konsistensi data perlu dikendalikan dengan berhati-hati.

Ringkasan:

Cache peringkat pertama dan cache peringkat kedua MyBatis direka bentuk untuk meningkatkan prestasi akses data. Cache peringkat pertama menyediakan kaedah pertanyaan pantas pada peringkat SqlSession, manakala cache peringkat kedua menyediakan kaedah pertanyaan global pada keseluruhan peringkat aplikasi. Memilih untuk menggunakan cache peringkat pertama atau cache peringkat kedua atau kedua-duanya mengikut keperluan aplikasi sebenar boleh meningkatkan prestasi aplikasi dengan berkesan.

Atas ialah kandungan terperinci Apakah cache tahap pertama dan cache tahap kedua mybatis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn