java - Pertanyaan berkaitan Mybatis
ringa_lee
ringa_lee 2017-05-27 17:41:50
0
1
705

Dalam pembangunan sebenar, pertanyaan berkaitan satu-ke-banyak dan banyak-ke-banyak Mybatis menggunakan rujukan reultMap, rujukan javaType atau rujukan pilih yang manakah mempunyai prestasi yang lebih baik?
Adakah malas memuatkan dengan pilihan akan meningkatkan kelajuan dan prestasi pertanyaan?

ringa_lee
ringa_lee

ringa_lee

membalas semua(1)
漂亮男人

mybatis mempunyai tiga penyelesaian untuk mengendalikan situasi satu-ke-banyak:

  1. Sertai sub-jadual semasa membuat pertanyaan, dan kemudian biarkan mybatis menyusunnya

  2. Jangan sertai sub-jadual semasa membuat pertanyaan, dan mulakan pilihan untuk menangkap data sub-jadual

  3. Serupa dengan yang kedua, kecuali menggunakan fetchType=lazy untuk melambatkan masa merangkak

Tiga pilihan ini masing-masing mempunyai masalah tersendiri:

  1. Penyelesaian pertama mempunyai dua kelemahan: 1) Ia tidak tepat semasa melakukan pertanyaan paging, 2) Jika terdapat banyak sub-jadual yang berkaitan, produk Cartesian akan menjadi sangat besar

  2. Pilihan kedua akan mempunyai 1+N pertanyaan, dan bilangan SQL yang dimulakan akan menjadi sangat menakutkan

  3. Penyelesaian ketiga nampaknya meningkatkan kecekapan pertanyaan pertama, tetapi jika anda mendapat sifat malas dalam gelung, tiada perbezaan daripada penyelesaian kedua

Jadi, jika terdapat keperluan prestasi, kami perlu memasang sendiri koleksi satu-ke-banyak Kaedahnya: kumpulkan ID jadual utama, mulakan pertanyaan sekali untuk menangkap data semua sub-jadual dan. kemudian pemasangan buatan. Bilangan pertanyaan yang dimulakan dengan cara ini ialah 1+1.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan