Artikel ini membawa anda pengetahuan yang berkaitan tentang seni bina mysql dan ringkasan enjin storan saya harap ia akan membantu anda.
Lapisan sambungan Lapisan atas ialah beberapa perkhidmatan pelanggan dan pautan, termasuk komunikasi stokin tempatan dan kebanyakan komunikasi seperti TCP/IP yang dilaksanakan oleh alatan klien/pelayan. Ia terutamanya melengkapkan beberapa pemprosesan sambungan, pengesahan kebenaran dan penyelesaian keselamatan yang berkaitan. Konsep kumpulan benang diperkenalkan pada lapisan ini untuk menyediakan benang untuk pelanggan yang mengakses dengan selamat melalui pengesahan. Pautan selamat berasaskan SSL juga boleh dilaksanakan pada lapisan ini. Pelayan juga mengesahkan kebenaran pengendalian yang dimilikinya untuk setiap pelanggan yang mengaksesnya dengan selamat.
Lapisan perkhidmatan Seni bina lapisan kedua terutamanya melengkapkan kebanyakan fungsi perkhidmatan teras, seperti antara muka SQL dan melengkapkan pertanyaan cache, analisis dan pengoptimuman SQL serta beberapa terbina dalam fungsi melaksanakan. Semua fungsi enjin storan silang juga dilaksanakan dalam lapisan ini, seperti prosedur, fungsi, dsb. Pada lapisan ini, pelayan akan menghuraikan pertanyaan dan mencipta pepohon parse dalaman yang sepadan, dan melengkapkan pengoptimuman yang sepadan seperti menentukan susunan pertanyaan jadual, sama ada akan menggunakan indeks, dsb., dan akhirnya menjana operasi pelaksanaan yang sepadan. Jika ia adalah penyataan pilih, pelayan juga akan menanyakan cache dalaman Jika ruang cache cukup besar, ini boleh meningkatkan prestasi sistem dalam persekitaran yang menyelesaikan sejumlah besar operasi baca.
Lapisan enjin storan, enjin storan benar-benar bertanggungjawab untuk penyimpanan dan mendapatkan semula data dalam MySQL Pelayan berkomunikasi dengan enjin storan melalui API. Enjin storan yang berbeza mempunyai fungsi yang berbeza, jadi kita boleh memilih enjin storan yang sesuai mengikut keperluan kita.
Lapisan storan data terutamanya menyimpan data pada sistem fail dan melengkapkan interaksi dengan enjin storan. Berbanding dengan pangkalan data lain, MySQL adalah sedikit berbeza seni binanya boleh digunakan dan berfungsi dengan baik dalam banyak senario yang berbeza. Dicerminkan terutamanya dalam enjin storan, seni bina enjin storan pemalam memisahkan pemprosesan pertanyaan daripada tugas sistem lain dan penyimpanan dan pengekstrakan data. Seni bina ini membolehkan pemilihan enjin storan yang sesuai berdasarkan keperluan perniagaan dan keperluan sebenar.
Setiap lapisan struktur MySQL terdiri daripada satu atau beberapa bahagian:
Penyambung: antara muka interaktifKomponen interaktif yang disediakan oleh MySQL, seperti java,.net , PHP dan bahasa lain boleh menggunakan komponen ini untuk mengendalikan pernyataan SQL dan merealisasikan interaksi dengan SQL
Komponen lapisan perkhidmatan
Kolam Sambungan : Komponen kolam sambunganPerkhidmatan & Utiliti Pengurusan: Perkhidmatan pengurusan dan komponen alatDigunakan untuk mengurus dan menampan sambungan pengguna, pemprosesan benang dan keperluan lain yang memerlukan caching
Digunakan untuk pengurusan sistem dan alat kawalan, seperti sandaran dan pemulihan, replikasi Mysql, pengelompokan, pengurusan keselamatan, dsb.
Digunakan untuk menerima SQL arahan daripada pengguna , seperti DML, DDL dan prosedur tersimpan, dsb., dan mengembalikan hasil akhir kepada pengguna
Apabila arahan SQL dihantar kepada penghurai, ia akan menjadi Pengesahan dan penghuraian, mula-mula menganalisis kesahihan sintaks perintah SQL, dan cuba menguraikan perintah SQL ke dalam struktur data Jika penguraian gagal, ia akan menggesa pernyataan SQL itu tidak munasabah
Pernyataan SQL akan menggunakan pengoptimum pertanyaan untuk mengoptimumkan pertanyaan sebelum membuat pertanyaan. Contohnya: pilih id,nama daripada pengguna di mana umur = 20;
Pertanyaan pilihan ini mula-mula memilih berdasarkan pernyataan where, bukannya menanyakan semua jadual dahulu dan kemudian menapis mengikut umurPertanyaan pilihan ini mula-mula melaksanakan unjuran atribut berdasarkan id dan nama, bukannya mengeluarkan semua atribut dan kemudian menapis
Sambungkan dua syarat pertanyaan ini untuk menjana hasil pertanyaan akhir
Komponen lapisan enjin
Enjin Storan Boleh Pasang: Enjin storan
Enjin storan ialah pelaksanaan teknologi seperti menyimpan data, mencipta indeks, mengemas kini data pertanyaan, dsb. Enjin storan adalah berasaskan jadual, bukan berasaskan perpustakaan. Jadi enjin penyimpanan juga boleh dipanggil jenis jadual. Penciptaan jadual, storan data, pengambilan semula, kemas kini, dan lain-lain semuanya dilengkapkan oleh enjin storan MySQL, yang juga merupakan peranan penting yang dimainkan oleh enjin storan MySQL dalam MySQL.
MYSQL menyediakan seni bina enjin storan plug-in, jadi pengguna boleh memilih enjin storan yang berbeza untuk jadual data mengikut keperluan yang berbeza Pengguna juga boleh menulis enjin storan mereka sendiri atau menulis enjin storan mengikut keperluan mereka sendiri. Malah jadual yang berbeza dalam perpustakaan menggunakan enjin storan berbeza dibenarkan.
Komponen lapisan storan
Sistem Fail: Sistem fail
digunakan untuk benar-benar menyimpan MySQL Fail pangkalan data dan beberapa fail log, dsb. Yang biasa termasuk Linux, Windows, dll.
Perbezaan dalam enjin storan yang biasa digunakan
Dalam MySQL Sebelum versi 5.5, enjin storan lalai ialah MyISAM, yang disertakan dengan MySQL. Selepas versi 5.5, enjin storan lalai telah ditukar kepada InnoDB, yang dibangunkan oleh syarikat pihak ketiga untuk MySQL. Mengapa menukarnya?
Sebab utamanya ialah InnoDB menyokong transaksi dan kunci peringkat baris, yang lebih sesuai untuk senario dengan keperluan konsisten perniagaan yang tinggi.
Pernyataan penciptaan jadual untuk enjin storan berbeza:
CREATE TABLE `user_innodb` ( `id` int(11) PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `gender` tinyint(1) DEFAULT NULL, `phone` varchar(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `user_myisam` ( `id` int(11) PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `gender` tinyint(1) DEFAULT NULL, `phone` varchar(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; CREATE TABLE `user_memory` ( `id` int(11) PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `gender` tinyint(1) DEFAULT NULL, `phone` varchar(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=utf8mb4; CREATE TABLE `user_archive` ( `id` int(11) PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `gender` tinyint(1) DEFAULT NULL, `phone` varchar(11) DEFAULT NULL ) ENGINE=Archive DEFAULT CHARSET=utf8mb4; CREATE TABLE `user_csv` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `gender` tinyint(1) NOT NULL, `phone` varchar(11) NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8mb4;
InnoDB
Enjin storan InnoDB ialah enjin storan lalai MySQL hari ini. Enjin storan InnoDB menyediakan keselamatan transaksi dengan keupayaan pemulihan komit, rollback dan ranap. Walau bagaimanapun, berbanding dengan enjin storan MyISAM, kecekapan pemprosesan tulis InnoDB adalah kurang cekap, dan ia mengambil lebih banyak ruang cakera untuk mengekalkan data dan indeks.
Ciri-ciri enjin storan InnoDB berbeza daripada enjin storan lain:
InnoDB jadual penyimpanan dan Terdapat dua cara untuk mengindeks:
InnoDB Persekitaran penggunaan yang sesuai:
InnoDB ialah enjin storan lalai MySQL, digunakan untuk aplikasi pemprosesan transaksi dan menyokong kunci asing. Jika aplikasi mempunyai keperluan yang agak tinggi untuk integriti transaksi dan memerlukan ketekalan data di bawah keadaan serentak, dan operasi data termasuk banyak operasi kemas kini dan pemadaman selain sisipan dan pertanyaan, maka enjin storan InnoDB ialah pilihan yang lebih sesuai.
Selain mengurangkan kunci yang disebabkan oleh pemadaman dan kemas kini secara berkesan, enjin storan InnoDB juga boleh memastikan penyerahan dan pemulangan transaksi yang lengkap, yang sesuai untuk sistem pengebilan atau sistem kewangan yang mempunyai keperluan ketepatan data yang tinggi. InnoDB ialah pilihan yang paling sesuai.
MyISAM
MyISAM tidak menyokong transaksi atau kunci asing Kelebihannya ialah akses pantas, tiada keperluan untuk integriti transaksi atau terutamanya SELECT dan INSERT Pada asasnya mana-mana aplikasi boleh menggunakan enjin ini untuk buat jadual.
mempunyai dua ciri penting berikut:
Setiap MyISAM ada pada cakera Ia disimpan ke dalam 3 fail. Nama fail adalah sama dengan nama jadual, tetapi sambungannya ialah:
Enjin storan memori menyimpan data jadual dalam ingatan. Setiap jadual MEMORY sebenarnya sepadan dengan fail cakera dalam format .frm Fail ini hanya menyimpan struktur jadual, dan fail datanya disimpan dalam ingatan Ini sesuai untuk pemprosesan data yang cepat dan meningkatkan kecekapan keseluruhan jadual .
MEMORY Persekitaran penggunaan yang sesuai: Simpan semua data dalam RAM, yang boleh menyediakan beberapa blok akses apabila rekod lokasi pantas dan persekitaran data lain yang serupa diperlukan.
MERGE
Enjin storan MERGE ialah gabungan set jadual MyISAM ini mesti mempunyai struktur yang sama. Jadual MERGE tidak boleh menyimpan data ditanya dan dikemas kini, operasi padam, operasi ini sebenarnya dilakukan pada jadual MyISAM dalaman.
Untuk operasi sisipan jadual jenis MERGE, jadual yang disisipkan ditakrifkan melalui klausa INSERT_METHOD, yang boleh mempunyai tiga nilai berbeza Menggunakan nilai FIRST atau LAST menyebabkan operasi sisipan digunakan pada yang pertama atau yang terakhir dengan sewajarnya Pada jadual, jika klausa ini tidak ditakrifkan atau ditakrifkan sebagai TIDAK, ini bermakna operasi sisipan tidak boleh dilakukan pada jadual MERGE ini.
Anda boleh melakukan operasi DROP pada jadual MERGE, tetapi operasi ini hanya memadamkan takrif jadual MERGE dan tidak mempunyai kesan pada jadual dalaman.
MERGE Persekitaran penggunaan yang sesuai:
digunakan untuk menggabungkan secara logik satu siri jadual MyISAM yang setara dan merujuknya sebagai objek.
Kelebihan jadual MERGE ialah ia boleh menembusi had saiz satu jadual MyISAM, dan dengan mengedarkan jadual berbeza pada berbilang cakera, kecekapan capaian jadual MERGE boleh dipertingkatkan dengan berkesan. Ini sangat sesuai untuk persekitaran VLDB seperti pergudangan data.
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Seni bina pengoptimuman MySql dan enjin storan (perkongsian ringkasan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!