Rumah > pangkalan data > tutorial mysql > Adakah Menggunakan Penyata PILIH Berbilang Cekap untuk Menyatakan dengan Jadual Kompleks?

Adakah Menggunakan Penyata PILIH Berbilang Cekap untuk Menyatakan dengan Jadual Kompleks?

Barbara Streisand
Lepaskan: 2024-12-09 05:44:10
asal
952 orang telah melayarinya

Is Using Multiple SELECT Statements Efficient for Upserting with Complex Tables?

Meningkatkan dengan Jadual Kompleks: Mengemas kini Berbilang Lajur

Apabila melakukan operasi upsert dengan berbilang lajur, persoalan timbul sama ada ia cekap menggunakan berbilang pilih pernyataan dalam bahagian kemas kini. Walaupun ia boleh dilaksanakan secara teknikal, pendekatan yang lebih baik tersedia.

Pertimbangkan contoh yang diberikan:

INSERT INTO `item`
(`item_name`, items_in_stock)
VALUES('A', 27)
ON DUPLICATE KEY UPDATE
`new_items_count` = 27 + (SELECT items_in_stock where item_name = 'A')
Salin selepas log masuk

Pertanyaan ini menambahkan kuantiti masuk dengan berkesan kepada nilai sedia ada untuk item yang ditentukan. Walau bagaimanapun, subpilihan tidak diperlukan.

Versi pertanyaan yang diperbetulkan adalah seperti berikut:

INSERT INTO `item`
(`item_name`, items_in_stock)
VALUES( 'A', 27)
ON DUPLICATE KEY UPDATE
`new_items_count` = `new_items_count` + 27
Salin selepas log masuk

Dengan mengabaikan subpilihan, pertanyaan menggunakan keupayaan MySQL untuk merujuk baris yang mencetuskan ON DUPLICATE KEY action. Ini menghapuskan keperluan untuk penyataan pilihan tambahan dan menyelaraskan proses kemas kini.

Ingat bahawa kesederhanaan selalunya merupakan kunci kepada operasi yang cekap. Dengan mempertimbangkan pilihan yang tersedia dengan teliti dan mengelakkan kerumitan yang tidak perlu, anda boleh mengoptimumkan pertanyaan upsert anda untuk prestasi dan kebolehbacaan kod.

Atas ialah kandungan terperinci Adakah Menggunakan Penyata PILIH Berbilang Cekap untuk Menyatakan dengan Jadual Kompleks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan