Bagaimanakah Saya Boleh Mengoptimumkan MySQL CASE BILA/KEMUDIAN/ELSE Kemas Kini untuk Prestasi dan Pengubahsuaian Baris Terpilih?

Susan Sarandon
Lepaskan: 2024-11-27 00:11:14
asal
217 orang telah melayarinya

How Can I Optimize MySQL CASE WHEN/THEN/ELSE Updates for Performance and Selective Row Modification?

Kemas Kini MySQL dengan CASE WHEN/THEN/ELSE: Mengatasi Isu Prestasi dan Kemas Kini Terpilih

Apabila bekerja dengan jadual besar, mengoptimumkan pertanyaan kemas kini menjadi penting untuk memastikan prestasi. Ciri MySQL CASE menyediakan mekanisme yang berkuasa untuk kemas kini bersyarat, tetapi menyalahgunakannya boleh mendatangkan akibat yang tidak dijangka.

Satu isu biasa возникает, seperti yang diterangkan dalam pernyataan masalah, ialah kemas kini yang tidak diingini bagi semua baris dalam jadual dan bukannya yang khusus. Ini disebabkan oleh kelakuan lalai CASE: jika tiada klausa ELSE ditentukan, semua baris tidak sepadan dengan mana-mana syarat WHEN dikemas kini kepada NULL. Ini boleh menjadi masalah untuk jadual besar, kerana ia mencetuskan kemas kini yang tidak perlu dan menekan sumber sistem.

Untuk mengelakkan isu ini, pembangun mesti menyertakan klausa ELSE secara eksplisit yang menentukan gelagat lalai untuk baris yang tidak dilindungi oleh syarat WHEN. Sebagai contoh, dalam contoh yang disediakan, menambah klausa uid ELSE memastikan bahawa semua baris yang tidak sepadan dengan mana-mana ID yang ditentukan akan mengekalkan nilai uid sedia ada mereka:

UPDATE `table` SET `uid` = CASE
    WHEN id = 1 THEN 2952
    WHEN id = 2 THEN 4925
    WHEN id = 3 THEN 1592
    ELSE `uid`
    END
WHERE id  in (1,2,3)
Salin selepas log masuk

Dengan mengehadkan klausa WHERE kepada yang khusus ID untuk dikemas kini, pertanyaan yang disemak ini memastikan bahawa hanya baris yang diperlukan terjejas. Pendekatan ini mengelakkan kemas kini yang berlebihan dan meminimumkan overhed prestasi sambil mengekalkan integriti data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan MySQL CASE BILA/KEMUDIAN/ELSE Kemas Kini untuk Prestasi dan Pengubahsuaian Baris Terpilih?. 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