Rumah > Artikel > pangkalan data > Bolehkah Operasi KEMASKINI dan PILIH Digabungkan dalam MySQL untuk Pemerolehan Tugas yang Cekap?
MySQL: Menggabungkan Operasi KEMASKINI dan PILIH dalam Pas Tunggal
Dalam senario di mana berbilang aplikasi bersaing untuk tugasan yang disimpan dalam jadual MySQL, setiap tugasan yang diwakili oleh pengecam unik, timbul keperluan untuk memperoleh pemilikan tugas dengan cekap dan mendapatkan semula parameter yang berkaitan. Pendekatan tradisional melibatkan operasi KEMASKINI dan PILIH yang berasingan, tetapi adakah terdapat cara untuk menyelaraskan proses ini?
Coretan kod yang disediakan menggariskan pendekatan tradisional: apl menjana ID unik, mengemas kini panduan medan dalam jadual tugasan ke ID itu, dan kemudian melakukan pertanyaan SELECT untuk mendapatkan semula parameter tugas. Ini memerlukan dua panggilan pangkalan data yang berasingan, yang boleh menjadi tidak cekap apabila konkurensi tinggi terlibat.
Penyelesaian kepada masalah ini terletak pada penggunaan satu pernyataan SQL yang menggabungkan kedua-dua operasi KEMASKINI dan PILIH. Kod berikut mencapai matlamat ini:
<code class="sql">UPDATE `tasks` SET `guid` = <new_unique_id> WHERE `guid` = 0 LIMIT 1; SELECT `params` FROM `tasks` WHERE `guid` = <new_unique_id>;</code>
Dengan menggabungkan operasi ini, pada asasnya kami mencipta satu transaksi yang melaksanakan KEMASKINI dan PILIH secara serentak. Kenyataan UPDATE cuba mengemas kini baris tertentu berdasarkan syarat yang ditentukan (panduan ialah 0) dan mengembalikan bilangan baris yang terjejas. Jika baris dikemas kini, pernyataan SELECT seterusnya mendapatkan semula medan params untuk baris yang dikemas kini.
Menggunakan pendekatan ini, aplikasi boleh mencapai kesan yang sama seperti kaedah tradisional dengan satu panggilan pangkalan data, dengan itu meningkatkan kecekapan dan mengurangkan kependaman, terutamanya dalam persekitaran yang sangat serentak.
Atas ialah kandungan terperinci Bolehkah Operasi KEMASKINI dan PILIH Digabungkan dalam MySQL untuk Pemerolehan Tugas yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!