Apakah pangkalan data MySql
Secara umumnya, pangkalan data ialah koleksi data Secara khusus, pangkalan data pada komputer boleh menjadi koleksi fail memori atau Himpunan beberapa data dalam ingatan.
Apa yang biasa kami panggil pangkalan data MySql, pangkalan data pelayan sql, dll. sebenarnya adalah sistem pengurusan pangkalan data dan menyediakan fungsi untuk membuat pertanyaan dan mengemas kini data dalam pangkalan data, dsb. Bergantung pada mekanisme pelaksanaan bagaimana pangkalan data menyimpan data dan cara mengendalikan data, terdapat perbezaan dan persamaan antara pangkalan data ini.
Pangkalan data MySql ialah pangkalan data hubungan sumber terbuka. Pada masa ini, fungsi yang boleh disediakan termasuk: menyokong bahasa SQL, subkueri, prosedur tersimpan, pencetus, paparan, indeks, urus niaga, kunci, kekangan kunci asing dan replikasi imej, dsb. Kami akan menerangkan fungsi ini secara terperinci kemudian.
Seperti sistem pangkalan data yang besar seperti Oracle dan SQL Server, MySql juga merupakan sistem klien/pelayan dan pangkalan data dengan seni bina berbilang benang satu proses.
Ciri penting yang membezakan MySql daripada sistem pangkalan data lain ialah sokongannya untuk enjin storan pemalam.
Jadi apakah itu enjin storan?
Ringkasnya, enjin storan ialah pelaksanaan teknologi seperti cara menyimpan data, cara mengindeks data yang disimpan dan cara mengemas kini serta menanyakan data. Oleh kerana data disimpan dalam bentuk jadual dalam pangkalan data hubungan, enjin storan juga boleh dipanggil jenis jadual (iaitu, jenis penyimpanan dan operasi jadual ini).
Hanya terdapat satu enjin storan dalam pangkalan data seperti Oracle dan SQL Server, dan semua mekanisme pengurusan storan data adalah sama. Pangkalan data MySql menyediakan pelbagai enjin storan. Pengguna boleh memilih enjin storan yang berbeza untuk jadual data mengikut keperluan yang berbeza, dan pengguna juga boleh menulis enjin storan mereka sendiri mengikut keperluan mereka sendiri. Apakah enjin storan yang terdapat dalam MySql?
1 MyISAM: Enjin ini adalah yang pertama disediakan oleh mysql. Enjin jenis ini boleh dibahagikan kepada tiga jenis: MyISAM statik, MyISAM dinamik dan MyISAM termampat:
MyISAM Statik: Jika panjang setiap lajur data dalam jadual data adalah pra-tetap, pelayan akan memilih jenis jadual ini secara automatik . Oleh kerana setiap rekod dalam jadual data menduduki ruang yang sama, kecekapan capaian jadual dan kemas kini adalah sangat tinggi. Apabila data rosak, pemulihan lebih mudah.
MyISAM Dinamik: Jika medan varchar, xxxtext atau xxxBLOB muncul dalam jadual data, pelayan akan memilih jenis jadual ini secara automatik. Berbanding dengan MyISAM statik, ruang penyimpanan jadual jenis ini agak kecil, tetapi kerana panjang setiap rekod adalah berbeza, selepas data diubah suai beberapa kali, data dalam jadual data mungkin disimpan secara diskret dalam ingatan, yang seterusnya membawa kepada penurunan kecekapan pelaksanaan. Pada masa yang sama, mungkin juga terdapat banyak pemecahan dalam ingatan. Oleh itu, jadual jenis ini selalunya perlu didefragmentasi menggunakan arahan jadual optimum atau alat pengoptimuman.
Mampat MyISAM: Kedua-dua jenis jadual yang dinyatakan di atas boleh dimampatkan menggunakan alat myisamchk. Jadual jenis ini mengurangkan lagi jejak storan, tetapi jadual jenis ini tidak boleh diubah suai selepas pemampatan. Di samping itu, kerana ia adalah data yang dimampatkan, jadual seperti ini mesti dinyahmampat terlebih dahulu apabila membaca.
Walau bagaimanapun, tidak kira apa jenis jadual MyISAM itu, ia pada masa ini tidak menyokong transaksi, kunci peringkat baris dan kekangan kunci asing.
Enjin 2 MyISAM Merge: Jenis ini adalah varian jenis MyISAM. Menggabungkan jadual adalah untuk menggabungkan beberapa jadual MyISAM yang sama ke dalam jadual maya. Biasa digunakan dalam log dan gudang data.
3 InnoDB: Jenis jadual InnoDB boleh dilihat sebagai produk MyISAM yang dikemas kini lebih lanjut Ia menyediakan fungsi transaksi, mekanisme penguncian peringkat baris dan kekangan kunci asing.
4 memori(timbunan): Jadual data jenis ini hanya wujud dalam ingatan. Ia menggunakan indeks cincang, jadi akses data sangat pantas. Kerana ia wujud dalam ingatan, jenis ini sering digunakan dalam jadual sementara.
5 arkib: Jenis ini hanya menyokong penyata pilih dan sisip, dan tidak menyokong indeks. Selalunya digunakan dalam pembalakan dan analisis agregat.
Sudah tentu, MySql menyokong lebih banyak jenis jadual daripada yang di atas.
Kami memperkenalkan beberapa enjin yang biasa digunakan dan mempelajari tentang beberapa enjin yang kurang biasa digunakan. Elakkan daripada melihat beberapa enjin yang tidak mengetahui konsep dalam kerja sebenar pada masa hadapan.
Dua enjin storan yang paling biasa digunakan:
· Myisam ialah enjin storan lalai untuk Mysql. Apabila cipta mencipta jadual baharu dan enjin storan jadual baharu tidak ditentukan, Myisam digunakan secara lalai. Setiap MyISAM disimpan sebagai tiga fail pada cakera. Nama fail adalah sama dengan nama jadual dan sambungannya ialah .frm (definisi jadual menyimpan), .MYD (MYData, menyimpan data) dan .MYI (MYIndex, indeks penyimpanan). Fail data dan fail indeks boleh diletakkan dalam direktori yang berbeza untuk mengagihkan IO secara sama rata dan memperoleh kelajuan yang lebih pantas. … Walau bagaimanapun, berbanding dengan enjin storan Myisam, kecekapan pemprosesan tulis InnoDB adalah kurang cekap dan mengambil lebih banyak ruang cakera untuk mengekalkan data dan indeks.
Cara memilih enjin storan yang sesuai
Kriteria pemilihan: Pilih enjin storan yang sesuai mengikut ciri-ciri aplikasi Untuk sistem aplikasi yang kompleks, enjin storan berbilang boleh dipilih dan digabungkan mengikut keadaan sebenar.
Berikut ialah persekitaran yang berkenaan untuk enjin storan yang biasa digunakan:
1 MyISAM: Enjin storan pemalam MySQL lalai, yang merupakan storan yang paling biasa digunakan dalam Web, pergudangan data dan. persekitaran aplikasi lain Salah satu enjin
2: digunakan untuk aplikasi pemprosesan transaksi, dengan banyak ciri, termasuk sokongan transaksi ACID.
3 Memori: Menyimpan semua data dalam RAM, menyediakan akses yang sangat pantas dalam persekitaran di mana rujukan dan data lain yang serupa perlu dicari dengan cepat.
4. Gabung: Membenarkan MySQL DBA atau pembangun menggabungkan secara logik satu siri jadual MyISAM yang setara dan merujuknya sebagai 1 objek. Ia sangat sesuai untuk persekitaran VLDB seperti pergudangan data.
MyISAM
tidak menyokong urus niaga, kunci meja (kunci peringkat jadual, penguncian akan mengunci keseluruhan jadual), menyokong indeks teks penuh dan mempunyai kelajuan operasi yang pantas. Selalunya digunakan untuk perniagaan yang banyak membaca.
1. Jadual enjin simpanan myisam terdiri daripada myd dan myi. .myd digunakan untuk menyimpan fail data, dan .myi digunakan untuk menyimpan fail indeks.
2. Untuk jadual enjin storan myisam, pangkalan data mysql hanya menyimpan fail indeksnya, dan caching fail data diselesaikan oleh sistem pengendalian itu sendiri.
InnoDB
1 Menyokong transaksi, terutamanya untuk aplikasi pemprosesan transaksi dalam talian (OLTP).
2. Reka bentuk kunci baris menyokong kunci asing, iaitu, operasi baca tidak dikunci secara lalai.
InnoDB direka untuk prestasi maksimum apabila memproses sejumlah besar data.
Nota:
Kunci baris: Kunci baris ini semasa operasi tulis dan kemas kini untuk menghalang orang lain daripada mengendalikannya.
Kunci meja: Semasa operasi tulis dan kemas kini, kunci jadual untuk menghalang orang lain daripada mengendalikannya.
Transaksi: Kendalikan berbilang data pada masa yang sama, jika salah satu operasi data gagal. Boleh berguling semula ke sebelum pembedahan. Biasa digunakan dalam perbankan, e-dagang, kewangan dan sistem lain.