Rumah pangkalan data tutorial mysql apa itu mysql innodb

apa itu mysql innodb

Apr 14, 2023 am 10:19 AM
mysql innodb

InnoDB ialah salah satu daripada enjin pangkalan data MySQL Ia kini merupakan enjin storan lalai MySQL dan salah satu piawaian untuk keluaran binari oleh MySQL AB InnoDB menggunakan sistem kebenaran dwi-lagu, satu ialah kebenaran GPL dan satu lagi ialah kebenaran perisian proprietari . InnoDB ialah enjin pilihan untuk pangkalan data transaksi dan menyokong jadual keselamatan transaksi (ACID);

apa itu mysql innodb

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Jika anda ingin melihat enjin storan yang digunakan oleh pangkalan data anda secara lalai, anda boleh menggunakan arahan Tunjukkan PEMBOLEH UBAH SEPERTI 'storage_engine';

1

InnoDB ialah salah satu daripada enjin pangkalan data MySQL Ia kini merupakan enjin storan lalai MySQL dan salah satu piawaian untuk keluaran binari oleh MySQL AB. InnoDB telah dibangunkan oleh Innobase Oy dan diperoleh oleh Oracle pada Mei 2006. Berbanding dengan ISAM tradisional dan MyISAM, ciri terbesar InnoDB ialah ia menyokong fungsi transaksi (Transaksi) serasi ACID, serupa dengan PostgreSQL.

InnoDB menggunakan sistem pelesenan dwi-landasan, satu pelesenan GPL dan satu lagi pelesenan perisian proprietari.

1. InnoDB ialah enjin pilihan untuk pangkalan data transaksi, menyokong jadual keselamatan transaksi (ACID)

Atribut ACID transaksi: Iaitu, atomicity dan konsistensi , Pengasingan, Ketahanan

a. Atomicity: Atomicity bermakna set pernyataan ini sama ada dilaksanakan atau tidak dilaksanakan sama sekali Jika ralat berlaku semasa pelaksanaan transaksi, pangkalan data akan Untuk melancarkan kembali ke titik di mana transaksi bermula.

                                                                                                                                                                                                              Transaksi ialah satu set pernyataan SQL yang mempunyai fungsi seperti pemilihan, pertanyaan dan pemadaman. Akan ada satu nod untuk setiap pelaksanaan pernyataan. Sebagai contoh, selepas kenyataan padam dilaksanakan, rekod disimpan dalam urus niaga ini menyimpan masa dan perkara yang kami lakukan. Jika sesuatu berlaku, ia akan digulung semula ke kedudukan asal Apa yang saya lakukan sudah disimpan dalam buat semula, dan kemudian ia boleh dilaksanakan secara terbalik. B. Ketekalan: Sebelum dan selepas permulaan transaksi, kekangan integriti pangkalan data tidak rosak. (EG: Contohnya, pemindahan ke B, adalah mustahil untuk menolak wang, tetapi B tidak menerimanya)

C. Pengasingan: Pada masa yang sama, hanya satu permintaan transaksi membenarkan satu permintaan transaksi untuk meminta Tiada gangguan antara transaksi yang berbeza untuk data yang sama;                                                                                                                                                                                       tertentu data berbilang kali, dan berbilang pengubahsuaian dalam urus niaga ini masih belum dilakukan Pada masa ini, transaksi serentak mengakses data, yang akan menyebabkan data yang diperolehi oleh kedua-dua urus niaga menjadi tidak konsisten (baca Diambil data kotor tanpa komitmen daripada Urus niaga lain)

Data, pelbagai pertanyaan dalam skop transaksi mengembalikan nilai data yang berbeza yang diserahkan oleh transaksi sebelumnya telah dibaca, dan nilai data yang sama telah disoal item data)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Item data telah diubah suai daripada "1" kepada "2". Pada masa ini, transaksi T2 memasukkan baris item data ke dalam jadual dan nilai item data ini masih "1" ke pangkalan data. Jika pengguna mengendalikan transaksi T1 melihat data yang baru diubah suai, dia akan mendapati masih terdapat satu baris yang belum diubah suai, baris ini telah ditambah daripada transaksi T2, sebagai jika dia berhalusinasi ); ( membaca data yang dihantar oleh transaksi sebelumnya, adalah untuk satu kumpulan data secara keseluruhan) : Selepas transaksi selesai , semua kemas kini kepada pangkalan data melalui transaksi akan disimpan ke pangkalan data dan tidak boleh ditarik balik 2. InnoDB ialah enjin storan lalai mySQL Tahap pengasingan lalai ialah RR, dan dalam RR Mengambil tahap pengasingan selangkah lebih jauh, kawalan konkurensi berbilang versi (MVCC) digunakan untuk menyelesaikan masalah bacaan yang tidak boleh diulang, dan kunci jurang (iaitu, kawalan konkurensi) ditambahkan untuk menyelesaikan masalah bacaan hantu. Oleh itu, tahap pengasingan RR InnoDB sebenarnya mencapai kesan tahap siri sambil mengekalkan prestasi konkurensi yang lebih baik.
Pangkalan data MySQL menyediakan kita dengan empat tahap pengasingan:

a boleh disiri: boleh mengelakkan bacaan kotor, bacaan tidak berulang dan bacaan hantu berlaku; 🎜>b. Bacaan berulang (repeatable read): dapat mengelakkan berlakunya bacaan kotor dan bacaan tidak berulang; >d, Baca tanpa komitmen (baca tanpa komitmen): tahap terendah, tiada jaminan dalam sebarang situasi

Dari a----d tahap pengasingan dari tinggi ke rendah, semakin tinggi tahap , semakin rendah; kecekapan pelaksanaan

3. InnoDB menyokong kunci peringkat baris. Kunci peringkat baris boleh menyokong konkurensi sepenuhnya, dan kunci peringkat baris dilaksanakan oleh lapisan enjin storan.

Kunci

: Fungsi utama kunci adalah untuk mengurus akses serentak kepada sumber yang dikongsi dan digunakan untuk mencapai pengasingan transaksi

Jenis:

Kunci kongsi (kunci baca), kunci eksklusif (kunci tulis)

                                Kekuatan kunci

: Kunci peringkat meja (overhead rendah, lapisan concurrency rendah),🎜 >

Kunci peringkat baris (overhed tinggi, konkurensi tinggi) , hanya akan dilaksanakan pada peringkat enjin storan

4. InnoDB ialah direka untuk prestasi maksimum dalam memproses sejumlah besar data. Kecekapan CPUnya mungkin tidak dapat ditandingi oleh mana-mana enjin pangkalan data hubungan berasaskan cakera5 Enjin storan InnoDB disepadukan sepenuhnya dengan pelayan MySQL Enjin storan InnoDB dicache dalam memori utama. Ia mengekalkan kumpulan penimbalnya sendiri untuk data dan indeks. InnoDB meletakkan jadual dan indeksnya dalam ruang jadual logik, dan ruang jadual boleh mengandungi beberapa fail (atau fail cakera asal); data dalam jadual, setiap jadual disimpan dalam susunan kunci primer Jika kunci utama tidak dinyatakan apabila jadual ditakrifkan. InnoDB akan menjana ROWID 6-bait untuk setiap baris dan menggunakannya sebagai kunci utama7 InnoDB digunakan dalam banyak tapak pangkalan data besar yang memerlukan prestasi tinggi

8. InnoDB tidak menyimpan bilangan baris dalam jadual (cth: apabila memilih count(*) daripada jadual, InnoDB perlu mengimbas keseluruhan jadual untuk mengira bilangan baris yang ada; keseluruhan jadual, InnoDB menyimpan satu baris Pemadaman satu baris adalah sangat perlahan InnoDB tidak mencipta direktori Apabila menggunakan InnoDB, MySQL akan mencipta fail data lanjutan secara automatik bernama ibdata1 in direktori data MySQL. Dan dua fail log 5MB bernama ib_logfile0 dan ib_logfile1


2. Pelaksanaan asas enjin InnoDB

InnoDB mempunyai dua fail storan, akhiran ialah .frm dan .idb; .frm ialah fail definisi jadual dan .idb ialah fail data jadual.

1 Enjin InnoDB menggunakan struktur B+Tree sebagai struktur indeks

B-Tree (pokok carian berbilang laluan seimbang) : untuk cakera Pepohon carian seimbang yang direka untuk peranti storan luaran

Apabila sistem membaca data dari cakera ke memori, unit asas ialah bit blok cakera Data yang terletak dalam blok cakera yang sama akan jadi Baca semuanya sekali gus bukannya atas permintaan.

Enjin storan InnoDB menggunakan halaman sebagai unit pembacaan data ialah unit terkecil pengurusan cakera Saiz halaman lalai ialah 16k.

Ruang storan blok cakera dalam sistem selalunya tidak begitu besar, jadi setiap kali InnoDB memohon ruang cakera, ia akan menggunakan beberapa blok cakera berturut-turut dengan alamat untuk mencapai saiz halaman 16KB.

InnoDB akan menggunakan halaman sebagai unit asas apabila membaca data cakera ke dalam cakera Apabila menanyakan data, jika setiap bahagian data dalam halaman boleh membantu mencari lokasi rekod data, yang akan mengurangkan bilangan cakera I/O dan meningkatkan kecekapan pertanyaan.

Data dalam struktur B-Tree membolehkan sistem mencari blok cakera dengan cekap di mana data terletak

Setiap nod dalam B-Tree adalah berdasarkan Situasi sebenar boleh mengandungi sejumlah besar maklumat kata kunci dan cawangan, contohnya:

apa itu mysql innodb

Setiap nod menduduki satu ruang blok cakera, terdapat dua kekunci tertib menaik pada nod dan tiga penunjuk ke nod akar subpokok Penunjuk menyimpan alamat blok cakera di mana nod kanak-kanak berada.

Mengambil nod akar sebagai contoh, kata kunci ialah 17 dan 35. Julat data subpokok yang ditunjuk oleh penuding P1 adalah kurang daripada 17 dan P2 penunjukJulat data subpokok yang ditunjuk ialah 17----35, dan julat data subpokok yang ditunjukkan oleh penuding P3 adalah lebih besar daripada 35

Carian simulasi kata kunci Proses 29:

a. Cari blok cakera 1 berdasarkan nod akar dan baca ke dalam ingatan. [Operasi I/O Cakera buat kali pertama]

b. Bandingkan kata kunci 29 dalam selang (17, 35), cari penunjuk P2 bagi blok cakera 1; > c. Cari blok cakera 3 mengikut penunjuk P2 dan baca ke dalam memori. [Operasi I/O cakera untuk kali kedua]

d. Bandingkan kata kunci 29 dalam selang (26, 30), cari penunjuk P2 bagi blok cakera 3; >

e. Cari blok cakera 8 mengikut penunjuk P2 dan baca ke dalam memori. [Kendalian I/O Cakera kali ketiga]

f. Cari kata kunci 29 dalam senarai kata kunci dalam blok cakera 8.

Storan InnoDB MySQL. enjin direka bentuk dengan pemastautin nod akar dalam ingatan, jadi ia berusaha untuk mencapai kedalaman pokok tidak lebih daripada 3, iaitu, I/O tidak memerlukan lebih daripada tiga kali; > Menganalisis keputusan di atas, kami mendapati bahawa tiga operasi I/O cakera dan tiga operasi carian memori diperlukan. Memandangkan kata kunci dalam ingatan adalah struktur senarai tersusun, carian binari boleh digunakan untuk meningkatkan kecekapan tiga operasi I/O cakera adalah faktor penentu yang mempengaruhi keseluruhan kecekapan carian B-Tree.

B+Tree

B+Tree ialah pengoptimuman berdasarkan B-Tree, menjadikannya lebih sesuai untuk melaksanakan struktur indeks storan luaran Setiap nod dalam B-Tree mempunyai kunci dan data, dan ruang storan setiap halaman adalah terhad Jika data data adalah besar, ia akan menyebabkan setiap nod (iaitu satu halaman) Nombor kunci yang boleh disimpan adalah sangat kecil. Apabila jumlah data yang disimpan adalah besar, kedalaman B-Tree juga akan menjadi lebih besar, yang akan meningkatkan bilangan I/O cakera semasa pertanyaan, sekali gus menjejaskan kecekapan pertanyaan.

Dalam B+Tree, semua nod rekod data disimpan pada nod daun pada lapisan yang sama mengikut urutan nilai kunci Hanya maklumat nilai kunci yang disimpan pada nod bukan daun Ini boleh meningkatkan bilangan nilai utama yang disimpan dalam setiap nod dan mengurangkan ketinggian B+Tree

B+Tree mempunyai dua perubahan berdasarkan B-Tree: (1) Data disimpan dalam nod daun

🎜>

Memandangkan nod bukan daun B+Tree hanya menyimpan maklumat nilai utama, dengan mengandaikan bahawa setiap blok cakera boleh menyimpan 4 nilai utama dan maklumat penunjuk, struktur selepas menjadi B+Tree adalah seperti yang ditunjukkan di bawah:

apa itu mysql innodb

Biasanya terdapat dua penunjuk kepala pada B+Tree, satu menunjuk ke nod akar dan satu lagi menghala ke daun dengan nod kata kunci terkecil, dan terdapat struktur cincin rantai antara semua nod daun (iaitu, nod data).

Oleh itu, dua operasi carian boleh dilakukan pada B+Tree, satu ialah carian julat dan carian halaman untuk kunci utama, dan satu lagi ialah carian rawak bermula dari nod akar .

B+Tree dalam InnoDB

InnoDB ialah storan data yang diindeks oleh ID

Terdapat dua fail storan data menggunakan enjin InnoDB, satu fail definisi dan satu lagi fail data.

InnoDB mengindeks ID melalui struktur B+Tree, dan kemudian menyimpan rekod dalam nod daun

apa itu mysql innodb

Jika medan diindeks bukan ID kunci utama, buat indeks untuk medan tersebut, kemudian simpan kunci utama rekod dalam nod daun, dan kemudian cari rekod yang sepadan melalui primer indeks kunci

【Cadangan berkaitan: tutorial video mysql

Atas ialah kandungan terperinci apa itu mysql innodb. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MySQL: Kemudahan Pengurusan Data untuk Pemula MySQL: Kemudahan Pengurusan Data untuk Pemula Apr 09, 2025 am 12:07 AM

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Bolehkah saya mengambil kata laluan pangkalan data di Navicat? Bolehkah saya mengambil kata laluan pangkalan data di Navicat? Apr 08, 2025 pm 09:51 PM

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

Cara Membuat Premium Navicat Cara Membuat Premium Navicat Apr 09, 2025 am 07:09 AM

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

Bagaimana untuk melihat kata laluan pangkalan data di Navicat untuk MariaDB? Bagaimana untuk melihat kata laluan pangkalan data di Navicat untuk MariaDB? Apr 08, 2025 pm 09:18 PM

Navicat untuk MariaDB tidak dapat melihat kata laluan pangkalan data secara langsung kerana kata laluan disimpan dalam bentuk yang disulitkan. Untuk memastikan keselamatan pangkalan data, terdapat tiga cara untuk menetapkan semula kata laluan anda: Tetapkan semula kata laluan anda melalui Navicat dan tetapkan kata laluan yang kompleks. Lihat fail konfigurasi (tidak disyorkan, risiko tinggi). Gunakan alat baris perintah sistem (tidak disyorkan, anda perlu mahir dalam alat baris arahan).

Mysql: Konsep mudah untuk pembelajaran mudah Mysql: Konsep mudah untuk pembelajaran mudah Apr 10, 2025 am 09:29 AM

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Navicat tidak dapat menyambung ke MySQL/MariaDB/PostgreSQL dan pangkalan data lain Navicat tidak dapat menyambung ke MySQL/MariaDB/PostgreSQL dan pangkalan data lain Apr 08, 2025 pm 11:00 PM

Alasan Biasa Mengapa Navicat tidak dapat menyambung ke pangkalan data dan penyelesaiannya: 1. Periksa status berjalan pelayan; 2. Periksa maklumat sambungan; 3. Laraskan tetapan firewall; 4. Konfigurasi akses jauh; 5. menyelesaikan masalah rangkaian; 6. Periksa keizinan; 7. Memastikan keserasian versi; 8. menyelesaikan masalah lain.

Cara Melaksanakan SQL di Navicat Cara Melaksanakan SQL di Navicat Apr 08, 2025 pm 11:42 PM

Langkah -langkah untuk melaksanakan SQL di Navicat: Sambungkan ke pangkalan data. Buat tetingkap editor SQL. Tulis pertanyaan SQL atau skrip. Klik butang Run untuk melaksanakan pertanyaan atau skrip. Lihat hasilnya (jika pertanyaan dilaksanakan).

Cara Membuat Sambungan Baru ke MySQL di Navicat Cara Membuat Sambungan Baru ke MySQL di Navicat Apr 09, 2025 am 07:21 AM

Anda boleh membuat sambungan MySQL baru di Navicat dengan mengikuti langkah -langkah: Buka aplikasi dan pilih Sambungan Baru (Ctrl N). Pilih "MySQL" sebagai jenis sambungan. Masukkan nama host/alamat IP, port, nama pengguna, dan kata laluan. (Pilihan) Konfigurasikan pilihan lanjutan. Simpan sambungan dan masukkan nama sambungan.

See all articles