Rumah > pangkalan data > tutorial mysql > Bagaimanakah Kekunci Komposit Boleh Meningkatkan Prestasi `KEMASKINI PADA KUNCI DUA` MySQL?

Bagaimanakah Kekunci Komposit Boleh Meningkatkan Prestasi `KEMASKINI PADA KUNCI DUA` MySQL?

Susan Sarandon
Lepaskan: 2024-12-03 10:21:13
asal
373 orang telah melayarinya

How Can Composite Keys Improve MySQL's `UPDATE ON DUPLICATE KEY` Performance?

Kekunci Komposit untuk Pertanyaan MySQL 'KEMASKINI PADA KUNCI DUA'

Apabila bekerja dengan pengecam unik berbilang lajur dalam MySQL, cabaran timbul untuk mengendalikan kedua-dua kemas kini dan sisipan. Walaupun sintaks 'KEMASKINI PADA KUNCI DUPLICATE' kelihatan seperti penyelesaian yang sesuai, ia memerlukan kunci unik untuk berfungsi.

Walau bagaimanapun, anda boleh mencipta kunci komposit daripada berbilang lajur, yang akan membenarkan 'KEMASKINI PADA KUNCI DUPLICATE' untuk berfungsi seperti yang dikehendaki. Begini cara untuk mendekati perkara ini:

Mencipta Kunci Komposit

Untuk mencipta kunci komposit, gunakan sintaks berikut:

CREATE INDEX <index_name> ON <table_name> (<column1>, <column2>);
Salin selepas log masuk

Sebagai contoh, mari buat kunci komposit untuk jadual tiga lajur yang disebut dalam soalan:

CREATE INDEX unique_index ON my_table (col_1, col_2);
Salin selepas log masuk

Menggunakan 'KEMASKINI ON DUPLICATE KEY'

Setelah kekunci komposit dicipta, anda boleh melaksanakan pertanyaan 'KEMASKINI PADA KUNCI PENDUPLICATE' sama ada untuk mengemas kini atau memasukkan rekod berdasarkan nilai kunci. Sintaksnya adalah seperti berikut:

INSERT INTO <table_name> (col_1, col_2, col_3) VALUES ('value1', 'value2', 'value3') ON DUPLICATE KEY UPDATE col_3=col_3+1;
Salin selepas log masuk

Dalam pertanyaan ini, jika rekod dengan nilai col_1 dan col_2 yang ditentukan sudah wujud, col_3 akan ditambah sebanyak 1. Jika tidak, rekod baharu akan dimasukkan.

Atas ialah kandungan terperinci Bagaimanakah Kekunci Komposit Boleh Meningkatkan Prestasi `KEMASKINI PADA KUNCI DUA` MySQL?. 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