


Rizab titik pengetahuan asas pangkalan data MySQL (ringkasan tersusun)
Artikel ini membawakan anda pengetahuan yang berkaitan tentang pangkalan data mysql Ia terutamanya mengatur beberapa titik pengetahuan asas pangkalan data, termasuk pengindeksan, susunan sintaks, perintah pelaksanaan, prosedur tersimpan dan isu lain yang berkaitan semua orang.
Pembelajaran yang disyorkan: tutorial mysql
1. Pangkalan Data
1.1 Transaksi
1.1.1 Empat ciri urus niaga (ACID)
- Atomicity (
Atomicity
)
Semua operasi yang diperlukan dalam keseluruhan transaksi mesti berjaya diserahkan , atau semuanya gagal dan berguling kembali. - Ketekalan (
Consistency
)
Memastikan ketekalan data dalam pangkalan data sebelum dan selepas operasi. (Sebagai contoh, pemindahan antara berbilang akaun pengguna, tetapi jumlah keseluruhan pengguna kekal tidak berubah) - Pengasingan (
Isolation
)
Pengasingan memerlukan transaksi untuk mengubah suai data dalam pangkalan data tidak kelihatan kepada transaksi lain sehingga komit selesai. (Iaitu, urus niaga mesti dilaksanakan secara bersiri) - Kegigihan (
Durability
)
Ketahanan bermaksud sebaik sahaja transaksi diserahkan, perubahan kepada data dalam pangkalan data adalah kekal, walaupun operasi melakukan transaksi tidak akan hilang walaupun sistem pangkalan data menghadapi kegagalan.
SQL
Standard mentakrifkan empat jenis pengasingan: (Pengasingan berikut adalah dari rendah ke tinggi, dan konkurensi adalah dari tinggi ke rendah)
- Bacaan tanpa komitmen.
Tahap pengasingan paling rendah, membolehkan transaksi lain melihat data tidak komited, yang akan membawa kepada bacaan kotor. - Diserahkan untuk dibaca.
Memandangkan pangkalan data dibaca dan tulis dipisahkan, kunci baca diperoleh apabila transaksi dibaca, tetapi ia dikeluarkan serta-merta selepas kunci baca dikeluarkan, data mungkin diubah suai oleh transaksi lain , anda akan mendapati bahawa data telah dibaca sebelum dan selepas Keputusan adalah berbeza, menyebabkan bacaan tidak boleh diulang. (Kunci baca tidak perlu dilepaskan selepas transaksi dilakukan, manakala kunci tulis perlu dilepaskan selepas transaksi dilakukan.) - Bacaan berulang.
Semua data yang diperolehi olehselect
tidak boleh diubah suai, sekali gus mengelakkan bacaan tidak konsisten sebelum dan selepas transaksi. Tetapi tiada cara untuk mengawal bacaan hantu, kerana urus niaga lain tidak boleh menukar data yang dipilih pada masa ini, tetapi mereka boleh menambah data - boleh bersiri.
Semua urus niaga dilaksanakan satu demi satu untuk mengelakkan bacaan hantu Untuk pangkalan data yang melaksanakan kawalan serentak berdasarkan kunci, siri memerlukan apabila melaksanakan pertanyaan julat, kunci julat perlu diperolehi Jika konkurensi tidak dilaksanakan berdasarkan kunci Terkawal pangkalan data, apabila transaksi yang melanggar operasi bersiri dikesan, urus niaga itu perlu ditarik balik.
Ringkasan: Empat tahap dipertingkatkan secara beransur-ansur, dan setiap tahap menyelesaikan masalah Semakin tinggi tahap transaksi, semakin teruk prestasinya. Tahap pengasingan yang tidak dapat dibaca dengan bacaan yang tidak dapat dikembalikan masalah hasil bacaan yang tidak konsisten, tetapi menyebabkan bacaan hantu (bukan sebelum ini, tetapi sekarang) -> Serializable menyelesaikan bacaan hantu, tetapi menambah banyak kunci julat , boleh menyebabkan kunci tamat masa;
1.1.2 Bacaan kotor, bacaan tidak boleh berulang dan bacaan hantu
- Bacaan kotor (untuk operasi rollback): Transaksi T1 mengemas kini deretan kandungan rekod , tetapi pengubahsuaian tidak dilakukan Transaksi T2 membaca baris yang dikemas kini, dan kemudian T1 melakukan operasi rollback dan membatalkan pengubahsuaian yang baru dibuat. Kini bilangan baris yang dibaca oleh T2 adalah tidak sah (satu transaksi membaca satu lagi transaksi); rekod yang baru dibaca T1, dan kemudian T1 membaca baris rekod ini sekali lagi, dan mendapati keputusannya berbeza daripada keputusan yang baru dibaca.
- Baca hantu (untuk operasi kemas kini): Transaksi T1 membaca set hasil yang dikembalikan oleh klausa tempat yang ditentukan, dan kemudian transaksi T2 memasukkan baris rekod baharu, yang betul-betul boleh memenuhi pertanyaan yang digunakan oleh keadaan T1. Kemudian T1 mendapatkan semula jadual, tetapi melihat data yang dimasukkan oleh T2 sekali lagi. (Saya tidak melihatnya pada kali pertama, tetapi saya melihatnya kali kedua)
- 2. 🎜>
2.1.1 Kelebihan indeks
- Buat indeks unik untuk memastikan keunikan setiap baris data dalam jadual pangkalan data; Mempercepatkan perolehan data dengan ketara, yang merupakan sebab utama untuk mencipta indeks;
- Mempercepatkan pautan antara jadual pangkalan data, terutamanya dalam mencapai integriti rujukan pangkalan data; untuk mendapatkan semula, masa untuk mengumpulkan dan menyusun dalam pertanyaan juga boleh dikurangkan dengan ketara;
- Dengan menggunakan indeks, penyembunyi pengoptimuman boleh digunakan dalam pertanyaan untuk meningkatkan prestasi sistem; >2.1.2 Kelemahan Indeks
Mencipta dan menyelenggara indeks mengambil masa, dan kali ini meningkat dengan pertambahan bilangan Pengindeksan memerlukan Menduduki ruang fizikal, sebagai tambahan kepada ruang data yang diduduki oleh jadual data, setiap indeks juga menduduki jumlah ruang fizikal tertentu Jika indeks berkelompok diwujudkan, ruang yang diperlukan akan menjadi lebih besar; memadam dan mengubah suai, indeks juga perlu dikekalkan, yang mengurangkan kelajuan penyelenggaraan data; ia Tiada sekatan )
(2) Indeks unik (nilai lajur indeks mestilah unik, tetapi nilai nol dibenarkan.)- (3) Indeks kunci utama (indeks unik khas yang tidak membenarkan nilai nol) . Secara amnya, indeks kunci utama dicipta pada masa yang sama semasa mencipta jadual )
- (4) Indeks gabungan (5) Indeks berkelompok membina pokok B mengikut. kunci utama setiap jadual, dan nod daun menyimpan keseluruhan jadual. Baris jadual rekod data, jadi nod daun indeks berkelompok menjadi halaman data.
- (6) Indeks tidak berkelompok (indeks tambahan) (nod halaman tidak menyimpan keseluruhan baris rekod).
- 2.3 Ketaksahan Indeks
- (1) Jika ada atau dalam keadaan, walaupun ada syarat dengan indeks, ia tidak akan digunakan (guna atau sesedikit mungkin); (2) Pertanyaan suka bermula dengan %, contohnya, PILIH * DARI jadual saya WHEREt Nama seperti'�min';
yang biasa digunakan: Indeks myISAM Indeks Innodb Indeks memori Indeks B-Tree menyokong sokongan
Indeks hash tidak menyokong sokongan- Sokongan indeks R-Tree tidak sokongan
- Indeks TEKS penuh tidak menyokong sementara Tidak disokong Tidak disokong
- 2.5 Struktur indeks dalam pangkalan data
B-tree juga dipanggil pepohon carian berbilang laluan seimbang Ciri-ciri pokok B-tertib-m adalah seperti berikut:
- 1. Setiap nod dalam pokok mengandungi paling banyak m anak (m>=2);
- 2. Kecuali nod akar dan nod daun, setiap nod mempunyai sekurang-kurangnya (ceil (m/2)) kanak-kanak (dengan siling (x) ialah fungsi yang mengambil had atas);
- 3. Nod akar);
- 4. Semua nod daun muncul dalam lapisan yang sama, dan nod daun tidak mengandungi sebarang maklumat kata kunci (boleh dianggap sebagai nod luaran atau nod di mana pertanyaan gagal, menunjuk ke nod ini. daripada semua titik adalah nol); (Nota: Nod daun hanya tidak mempunyai anak dan penunjuk kepada kanak-kanak. Nod ini juga wujud dan mempunyai unsur. Sama seperti pokok merah-hitam, setiap penunjuk nol dianggap sebagai nod daun, tetapi terdapat tidak Lukis sahaja)

B tree

Dalam keadaan apakah ia sesuai untuk membina indeks?
(1) Untuk kata kunci yang sering muncul dalam Buat indeks pada medan mengikut susunan mengikut, kumpulan mengikut, berbeza
(2) Buat indeks pada medan set hasil kesatuan dan operasi set lain adalah sama seperti di atas;
(3) sering digunakan Tanya medan yang dipilih dan buat indeks
(4) Buat indeks pada atribut yang sering digunakan sebagai pautan jadual; data jarang dikemas kini Jika pengguna sering Untuk bertanya hanya beberapa medan, anda boleh mempertimbangkan untuk membuat indeks pada medan ini untuk menukar imbasan jadual kepada imbasan indeks.
3. Urutan sintaks Mysql Iaitu, apabila kata kunci berikut wujud dalam sql, mereka mesti mengekalkan susunan ini:

B tree

Dalam keadaan apakah ia sesuai untuk membina indeks?
(1) Untuk kata kunci yang sering muncul dalam Buat indeks pada medan mengikut susunan mengikut, kumpulan mengikut, berbeza
(2) Buat indeks pada medan set hasil kesatuan dan operasi set lain adalah sama seperti di atas;
(3) sering digunakan Tanya medan yang dipilih dan buat indeks
(4) Buat indeks pada atribut yang sering digunakan sebagai pautan jadual; data jarang dikemas kini Jika pengguna sering Untuk bertanya hanya beberapa medan, anda boleh mempertimbangkan untuk membuat indeks pada medan ini untuk menukar imbasan jadual kepada imbasan indeks.
pilih[distinct ] , dari, sertai (seperti kiri sertai), pada, di mana, kumpulandari, pada, sertai, di mana, kumpulan mengikut, mempunyai, pilih, berbeza, kesatuan, susunan mengikutoleh, mempunyai, kesatuan, perintah mengikut, had; Iaitu, apabila melaksanakan, sql dilaksanakan dalam susunan berikut:
kumpulan mengikut dan Fungsi pengagregatan digunakan bersama,
Contohnya:
untuk melaksanakan pertanyaan berbilang jadual (cantuman dalam)
Menggunakan
juga boleh mencapaiselect a.Customer,sum(a.OrderPrice) from orders a where a.Customer=’Bush’ or a.Customer = ‘Adams’ group by a.Customer;
select u.uname,a.addr from lm_user u inner join lm_addr a on u.uid = a.uid;
select from where
Panggil prosedur tersimpan
select u.uname,a.addr from lm_user u, lm_addr a where u.uid = a.uid;
Lihat prosedur tersimpan
delimiter $$ create procedure procedure_bill() comment '查询所有销售情况' begin select billid, tx_time, amt from lm_bill; end $$ delimiter ;
6. . Wujudkan hubungan jadual data many-to-many
call procedure_bill();
Langkah 1: Cipta tiga jadual data Pelajar, Kursus, Stu_Cour
show procedure status like 'procedure_bill';
Langkah 2: Tambahkan kunci asing pada jadual berkaitan Stu_Cour
Selesaikan penciptaan!
/**学生表*/ CREATE TABLE Student ( stu_id INT AUTO_INCREMENT, NAME VARCHAR(30), age INT , class VARCHAR(50), address VARCHAR(100), PRIMARY KEY(stu_id) ) /*学生课程表*/ CREATE TABLE Course( cour_id INT AUTO_INCREMENT, NAME VARCHAR(50), CODE VARCHAR(30), PRIMARY KEY(cour_id) ) /**学生课程关联表*/ CREATE TABLE Stu_Cour( sc_id INT AUTO_INCREMENT, stu_id INT , cour_id INT, PRIMARY KEY(sc_id) )
Nota: Tambahkan kunci asing pada jadual data yang ditambahkan:
- Sintaks:/*添加外键约束*/ ALTER TABLE Stu_Cour ADD CONSTRAINT stu_FK1 FOREIGN KEY(stu_id) REFERENCES Student(stu_id); ALTER TABLE Stu_Cour ADD CONSTRAINT cour_FK2 FOREIGN KEY(cour_id) REFERENCES Course(cour_id);
- Contoh:
-
alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名)
7. Enjin pangkalan data (enjin storan)
alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id);
Ambil pangkalan data hubungan sebagai contoh Hantar pernyataan SQL kepada enjin pangkalan data Enjin pangkalan data mentafsir pernyataan SQL, mengekstrak data yang anda perlukan dan mengembalikannya kepada anda. Oleh itu, kepada pelawat, enjin pangkalan data adalah penterjemah pernyataan SQL.
Perbezaan utama:
tidak selamat dari segi transaksi, manakala
Ia selamat untuk transaksi;- butiran kunci ialah penguncian peringkat jadual, manakala
- menyokong penguncian peringkat baris;
MYISAM
tidak Menyokong indeks teks penuhInnoDB
- agak mudah, jadi ia lebih baik daripada
NYISAM
dari segi kecekapan aplikasi kecil boleh mempertimbangkan untuk menggunakanInnoDB
- jadual disimpan sebagai fail Borang, menggunakan storan
MYISAM
dalam pemindahan data merentas platform akan menjimatkan banyak masalah; (6) JadualInnoDB
lebih selamat daripada jadual dan boleh memastikan bahawa data tidak hilang Dalam kes ini, tukar jadual bukan transaksi kepada jadual urus niaga -
MYISAM
InnoDB
Senario aplikasi:MYISAM
.-
MYISAM
mengurus jadual bukan urus niaga Ia menyediakan storan dan pengambilan semula berkelajuan tinggi, serta keupayaan carian teks penuh Jika aplikasi perlu melakukan sejumlah besar pertanyaanselect
, makaMYISAM
ialah pilihan yang lebih baik. -
InnoDB
untuk aplikasi pemprosesan transaksi dengan pelbagai ciri termasukACID
sokongan transaksi. Jika aplikasi anda perlu melaksanakan sejumlah besar operasiinsert
atauupdate
, anda harus menggunakaninnodb
, yang boleh meningkatkan prestasi operasi serentak berbilang pengguna.
8. Paradigma pangkalan data
Pada masa ini terdapat 6 paradigma dalam pangkalan data hubungan: bentuk normal pertama {1NF}, bentuk normal kedua {2NF}, bentuk normal ketiga {3NF}, Bath —Kod bentuk normal {BCNF}, bentuk normal keempat {4NF}, bentuk normal kelima {5NF, juga dikenali sebagai bentuk normal sempurna}. Paradigma yang memenuhi keperluan minimum ialah bentuk normal pertama. Berdasarkan bentuk normal pertama, bentuk yang memenuhi lebih banyak keperluan standard dipanggil bentuk normal kedua {2NF}, dan paradigma lain mengikutinya Secara umumnya, pangkalan data hanya perlu memenuhi bentuk normal ketiga (3NF). .
Bentuk biasa:- 1NF: Pastikan setiap lajur kekal atom
- 2NF: Pastikan setiap lajur dalam jadual berkaitan dengan kunci primer (kunci primer bersama) ;
- 3NF: Pastikan setiap lajur dalam jadual berkaitan secara langsung dengan kunci utama (kunci asing); subset kunci utama (hapuskan pergantungan pada subset kunci primer berdasarkan 3NF) Pergantungan pada subset kod utama
- 4NF: memerlukan pemadaman hubungan banyak-ke-banyak dalam yang sama); jadual;
- 5NF: menetapkan semula struktur asal daripada struktur akhir;
-
Atas ialah kandungan terperinci Rizab titik pengetahuan asas pangkalan data MySQL (ringkasan tersusun). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.

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.
