cari
Rumahpangkalan datatutorial mysqlMari bercakap tentang kunci global MySQL

Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql, yang terutamanya memperkenalkan isu berkaitan tentang kunci global mengunci seluruh pangkalan data. Selepas kita menambah kunci baca pada pangkalan data, tiada permintaan lain boleh menambah kunci tulis pada pangkalan data Mari kita lihat bersama-sama saya harap ia akan membantu semua orang.

Mari bercakap tentang kunci global MySQL

Pembelajaran yang disyorkan: tutorial video mysql

Niat asal reka bentuk pangkalan data adalah untuk menangani isu konkurensi, sebagai sumber yang dikongsi oleh berbilang pengguna Apabila akses serentak berlaku, pangkalan data perlu mengawal peraturan capaian sumber secara munasabah. Kunci ialah struktur data penting yang digunakan untuk melaksanakan peraturan akses ini.

Mari kita siarkan dahulu gambar rajah klasifikasi umum kunci

Mengikut skop penguncian, kunci dalam MySQL boleh dibahagikan secara kasar kepada kunci global dan kunci meja, kunci baris. Kami akan mempelajari jenis kunci ini terlebih dahulu Dalam artikel ini, kami akan mempelajari tentang kunci global.

Kunci global

Kunci global mengunci seluruh pangkalan data. Selepas kami menambah kunci baca pada pangkalan data, tiada permintaan lain boleh menambah kunci tulis pada pangkalan data Apabila kami menambah kunci tulis pada pangkalan data, tiada permintaan seterusnya boleh menambah kunci baca atau tulis pada pangkalan data.

FTWRL

MySQL menyediakan kaedah untuk menambah kunci baca global, Siram jadual dengan kunci baca (FTWRL). Apabila kita perlu membuat keseluruhan perpustakaan dalam keadaan baca sahaja, kita boleh menggunakan arahan ini Kemudian penyataan berikut bagi utas lain akan disekat: penyata kemas kini data (tambah, padam, ubah suai), penyataan definisi data (termasuk membuat jadual. , mengubah suai struktur jadual, dsb.) dan mengemas kini Penyataan komit untuk transaksi kelas.

Senario penggunaan kunci global

Senario penggunaan kunci global: Buat sandaran logik bagi keseluruhan pangkalan data. Sandaran logik bermakna memilih setiap jadual dalam keseluruhan pangkalan data dan menyimpannya sebagai teks. Maksudnya, kunci global hanya digunakan apabila melaksanakan data sandaran tuan-hamba atau mengimport dan mengeksport data.

Jadi mengapa anda memerlukan kunci global?

Oleh kerana apabila kami membuat sandaran data atau mengimport dan mengeksport data, jika data boleh ditambah, dipadam dan diubah suai pada masa yang sama dalam tempoh ini, ketidakkonsistenan data akan berlaku.

Pada masa lalu, terdapat cara untuk menggunakan FTWRL yang dinyatakan di atas untuk memastikan bahawa tiada urutan lain akan mengemas kini pangkalan data semasa sandaran Nota: Semasa proses sandaran, keseluruhan pustaka berada dalam baca sahaja negeri.

Oleh kerana kunci global berorientasikan pangkalan data ini, menambah kunci global berbunyi sangat berbahaya:

  • Jika kami membuat sandaran pada pangkalan data utama, kemas kini tidak boleh dilakukan semasa tempoh sandaran , dan Pada asasnya semua perniagaan digantung.
  • Jika kita membuat sandaran pada pangkalan data hamba, binlog yang disegerakkan daripada pangkalan data induk semasa tempoh sandaran tidak boleh dilaksanakan, yang akan membawa kepada kelewatan tuan-hamba dan ketidakkonsistenan data.

Bagaimana untuk mengelakkan penguncian

Memandangkan penambahan kunci global mempunyai kesan yang begitu besar, bolehkah kita mengelak daripada mengunci?

Melalui pengenalan di atas, kita tahu bahawa penguncian adalah untuk menyelesaikan masalah ketidakkonsistenan data. Jadi selagi kami dapat menyelesaikan masalah ketidakkonsistenan data, kami tidak perlu menambah kunci global. Terdapat idea sedemikian: jika kita merekodkan log operasi apabila kita memulakan sandaran data, penambahan, pemadaman, pengubahsuaian dan pertanyaan kepada pangkalan data dibenarkan tanpa mengunci semasa proses sandaran, dan semasa proses sandaran, rekod operasi penambahan, pemadaman. , pengubahsuaian dan pertanyaan direkodkan dalam satu Dalam fail log, selepas sandaran kami selesai, kami akan melaksanakan semua operasi dalam fail log dalam tempoh ini. Ini memastikan ketekalan data sebelum dan selepas sandaran.

Untuk meringkaskan, tanpa mengunci, data sandaran dan data utama tidak berada pada titik masa yang logik, dan pandangan ini secara logiknya tidak konsisten. Jika kita memastikan bahawa titik masa logik adalah konsisten, iaitu pandangan logik adalah konsisten, kita boleh memastikan konsistensi data Daripada ini, kita memikirkan tahap pengasingan transaksi yang kita pelajari sebelum ini pandangan yang konsisten.

Terdapat mekanisme dalam InnoDB, enjin lalai MySQL, untuk memastikan ketekalan data. Enjin InnoDB mempunyai fungsi versi syot kilat Fungsi ini dipanggil MVCC kerana MVCC mengekalkan syot kilat versi sejarah Setiap syot kilat sepadan dengan nombor versi transaksi, kami akan memohon nombor versi transaksi mengambil data, anda hanya perlu membaca data dengan nombor versi transaksi yang lebih kecil daripada anda sendiri.

–penguncian perintah transaksi tunggal

Alat sandaran logik rasmi ialah mysqldump. Apabila mysqldump menggunakan parameter –single-transaction, transaksi akan dimulakan sebelum mengimport data untuk memastikan paparan yang konsisten diperoleh. Disebabkan sokongan MVCC, data boleh dikemas kini seperti biasa semasa proses ini.

Fungsi parameter --single-transaction adalah untuk menetapkan tahap pengasingan urus niaga kepada bacaan berulang, iaitu BACA BOLEH DIULANG Ini memastikan semua pertanyaan yang sama dalam transaksi membaca data yang sama, yang secara kasarnya menjamin bahawa dalam Semasa pembuangan, jika benang enjin InnoDB lain mengubah suai data jadual dan menyerahkannya, ia tidak akan memberi kesan kepada data benang pembuangan.

Dan tetapkan DENGAN GAMBAR KONSISTEN ke tahap gambar. Bayangkan jika ia hanya bacaan berulang, maka apabila data tidak dibuang pada permulaan transaksi, utas lain mengubah suai dan menyerahkan data, maka hasil pertanyaan pertama pada masa ini adalah hasil yang dihantar oleh utas lain, dan DENGAN GAMBAR YANG KONSISTEN boleh memastikan bahawa apabila urus niaga dimulakan, hasil pertanyaan pertama ialah data A pada permulaan transaksi Walaupun urutan lain mengubah suai datanya kepada B pada masa ini, hasil pertanyaan itu masih A .

Kaedah transaksi tunggal hanya terpakai kepada perpustakaan yang menggunakan enjin transaksi untuk semua jadual. Dalam proses mysqldump, menambah --single-transaction boleh memastikan data InnoDB benar-benar konsisten Untuk enjin seperti MyISAM yang tidak menyokong transaksi, jika terdapat kemas kini semasa proses sandaran, hanya data terkini yang boleh diperolehi Ini memusnahkan konsistensi sandaran. Pada masa ini, kunci global masih diperlukan, jadi kita masih perlu menggunakan arahan FTWRL.

Tetapan baca sahaja

Kami mungkin juga mempunyai soalan ini, memandangkan keseluruhan perpustakaan adalah baca sahaja, mengapa kita tidak menggunakan set baca sahaja global = benar?

Memang benar kaedah baca sahaja juga boleh meletakkan keseluruhan perpustakaan ke dalam keadaan baca sahaja, tetapi masih disyorkan untuk menggunakan kaedah FTWRL, terutamanya atas dua sebab:

  • Dalam sesetengah sistem, nilai readonly will Ia digunakan untuk logik lain, seperti menentukan sama ada pangkalan data ialah pangkalan data utama atau pangkalan data siap sedia. Oleh itu, mengubah suai pembolehubah global mempunyai kesan yang lebih besar.
  • Terdapat perbezaan dalam mekanisme pengendalian pengecualian. Jika pelanggan memutuskan sambungan secara tidak normal selepas melaksanakan arahan FTWRL, MySQL akan secara automatik melepaskan kunci global dan keseluruhan perpustakaan akan kembali ke keadaan di mana ia boleh dikemas kini seperti biasa.

Selepas menetapkan keseluruhan perpustakaan kepada baca sahaja, jika pengecualian berlaku pada klien, pangkalan data akan kekal dalam keadaan baca sahaja, yang akan menyebabkan keseluruhan perpustakaan berada dalam keadaan tidak boleh ditulis untuk masa yang lama , dengan risiko yang tinggi.

Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci Mari bercakap tentang kunci global MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:CSDN. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Mysql: Kemahiran penting untuk pemula untuk menguasaiMysql: Kemahiran penting untuk pemula untuk menguasaiApr 18, 2025 am 12:24 AM

MySQL sesuai untuk pemula untuk mempelajari kemahiran pangkalan data. 1. Pasang alat pelayan dan klien MySQL. 2. Memahami pertanyaan SQL asas, seperti SELECT. 3. Operasi data induk: Buat jadual, masukkan, kemas kini, dan padam data. 4. Belajar Kemahiran Lanjutan: Fungsi Subquery dan Window. 5. Debugging dan Pengoptimuman: Semak sintaks, gunakan indeks, elakkan pilih*, dan gunakan had.

MySQL: Data berstruktur dan pangkalan data hubunganMySQL: Data berstruktur dan pangkalan data hubunganApr 18, 2025 am 12:22 AM

MySQL dengan cekap menguruskan data berstruktur melalui struktur jadual dan pertanyaan SQL, dan melaksanakan hubungan antara meja melalui kunci asing. 1. Tentukan format data dan taip apabila membuat jadual. 2. Gunakan kunci asing untuk mewujudkan hubungan antara jadual. 3. Meningkatkan prestasi melalui pengindeksan dan pengoptimuman pertanyaan. 4. Secara kerap sandaran dan memantau pangkalan data untuk memastikan pengoptimuman keselamatan data dan prestasi.

MySQL: Ciri dan keupayaan utama dijelaskanMySQL: Ciri dan keupayaan utama dijelaskanApr 18, 2025 am 12:17 AM

MySQL adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pembangunan web. Ciri -ciri utamanya termasuk: 1. Menyokong pelbagai enjin penyimpanan, seperti InnoDB dan Myisam, sesuai untuk senario yang berbeza; 2. Menyediakan fungsi replikasi master-hamba untuk memudahkan pengimbangan beban dan sandaran data; 3. Meningkatkan kecekapan pertanyaan melalui pengoptimuman pertanyaan dan penggunaan indeks.

Tujuan SQL: Berinteraksi dengan Pangkalan Data MySQLTujuan SQL: Berinteraksi dengan Pangkalan Data MySQLApr 18, 2025 am 12:12 AM

SQL digunakan untuk berinteraksi dengan pangkalan data MySQL untuk merealisasikan penambahan data, penghapusan, pengubahsuaian, pemeriksaan dan reka bentuk pangkalan data. 1) SQL Melaksanakan operasi data melalui Pilih, Masukkan, Kemas kini, Padam Penyataan; 2) Gunakan pernyataan membuat, mengubah, drop untuk reka bentuk dan pengurusan pangkalan data; 3) Pertanyaan kompleks dan analisis data dilaksanakan melalui SQL untuk meningkatkan kecekapan membuat keputusan perniagaan.

Mysql for Beginners: Bermula dengan Pengurusan Pangkalan DataMysql for Beginners: Bermula dengan Pengurusan Pangkalan DataApr 18, 2025 am 12:10 AM

Operasi asas MySQL termasuk membuat pangkalan data, jadual, dan menggunakan SQL untuk melakukan operasi CRUD pada data. 1. Buat pangkalan data: createdatabasemy_first_db; 2. Buat Jadual: CreateTableBooks (Idintauto_IncrementPrimaryKey, Titlevarchar (100) NotNull, Authorvarchar (100) NotNull, Published_yearint); 3. Masukkan Data: InsertIntoBooks (Tajuk, Pengarang, Published_year) VA

Peranan MySQL: Pangkalan Data dalam Aplikasi WebPeranan MySQL: Pangkalan Data dalam Aplikasi WebApr 17, 2025 am 12:23 AM

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

MySQL: Membina pangkalan data pertama andaMySQL: Membina pangkalan data pertama andaApr 17, 2025 am 12:22 AM

Langkah -langkah untuk membina pangkalan data MySQL termasuk: 1. Buat pangkalan data dan jadual, 2. Masukkan data, dan 3. Pertama, gunakan pernyataan CreatedataBase dan createtable untuk membuat pangkalan data dan jadual, kemudian gunakan pernyataan InsertInto untuk memasukkan data, dan akhirnya gunakan pernyataan PILIH untuk menanyakan data.

MySQL: Pendekatan mesra pemula untuk penyimpanan dataMySQL: Pendekatan mesra pemula untuk penyimpanan dataApr 17, 2025 am 12:21 AM

MySQL sesuai untuk pemula kerana mudah digunakan dan berkuasa. 1.MYSQL adalah pangkalan data relasi, dan menggunakan SQL untuk operasi CRUD. 2. Ia mudah dipasang dan memerlukan kata laluan pengguna root untuk dikonfigurasi. 3. Gunakan Masukkan, Kemas kini, Padam, dan Pilih untuk Melaksanakan Operasi Data. 4. Orderby, di mana dan menyertai boleh digunakan untuk pertanyaan yang kompleks. 5. Debugging memerlukan memeriksa sintaks dan gunakan Jelaskan untuk menganalisis pertanyaan. 6. Cadangan pengoptimuman termasuk menggunakan indeks, memilih jenis data yang betul dan tabiat pengaturcaraan yang baik.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)