Innodb melaksanakan dua kunci peringkat baris, satu kunci dikongsi dan satu lagi kunci eksklusif.
Maafkan saya:
(1) Bolehkah kunci peringkat baris hanya dimuatkan pada rekod baris? Mengapakah saya nampak beberapa menyebut bahawa kunci kongsi dan kunci eksklusif juga boleh digunakan pada peringkat meja?
Boleh beri saya tips
Kunci baris InnoDB hanya berkesan apabila pernyataan kunci (iaitu, UNTUK KEMASKINI dan MOD KONGSI TERKUNCI) menggunakan indeks, kerana InnoDB sebenarnya mengunci baris berdasarkan indeks. Iaitu, jika tiada indeks digunakan, kunci secara automatik dinaikkan ke paras jadual.
Seperti yang dinyatakan di atas, apabila tahap pengasingan urus niaga dibaca berulang (tahap lalai mysql)
Apabila enjin InnoDB mengubah suai dan memadam data, ia akan mencari indeks yang sepadan terlebih dahulu, dan indeks diisih nilai atau julat tertentu akan dikunci.
Jika julat ini ialah keseluruhan segmen indeks, maka keseluruhan data jadual akan dikunci sebagai tambahan, jika tiada indeks, keseluruhan jadual akan diimbas semasa operasi pengubahsuaian dan pemadaman, dan keseluruhan jadual akan secara semula jadi; terkunci.
InnoDB melaksanakan dua jenis kunci baris berikut.
Kunci kongsi: Kunci eksklusif yang membenarkan satu transaksi membaca baris dan menghalang transaksi lain daripada mendapatkan set data yang sama.
Kunci eksklusif (X): Membenarkan urus niaga yang memperoleh kunci eksklusif untuk mengemas kini data dan menghalang transaksi lain daripada memperoleh kunci baca kongsi dan kunci tulis eksklusif pada set data yang sama.
Selain itu, untuk membolehkan kunci baris dan kunci meja wujud bersama dan melaksanakan mekanisme penguncian berbilang butiran, InnoDB juga mempunyai dua kunci niat yang digunakan secara dalaman (Kunci Niat), yang kedua-duanya adalah kunci meja.
Kunci kongsi niat (IS): Urus niaga berhasrat untuk berkongsi kunci pada baris data Urus niaga mesti mendapatkan kunci IS jadual terlebih dahulu sebelum menambah kunci dikongsi pada baris data.
Kunci eksklusif niat (IX): Urus niaga berhasrat untuk menambah kunci eksklusif pada baris data Urus niaga mesti mendapatkan kunci IX jadual terlebih dahulu sebelum menambah kunci eksklusif pada baris data.
Kunci baris ditambahkan pada baris, manakala kunci meja sepadan dengan keseluruhan jadual. Kunci baris dan kunci meja boleh wujud bersama!
Kunci boleh didapati dalam enjin mysql. Kunci baris dan kunci meja dibezakan dari perspektif kebutiran kunci