Rumah > pangkalan data > tutorial mysql > 13 kata kunci yang anda mesti tahu untuk mempelajari MySQL (perkongsian ringkasan)

13 kata kunci yang anda mesti tahu untuk mempelajari MySQL (perkongsian ringkasan)

WBOY
Lepaskan: 2022-11-30 21:00:13
ke hadapan
2597 orang telah melayarinya

Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql, yang terutamanya memperkenalkan isu yang berkaitan dengan kata kunci, termasuk tiga bentuk biasa, set aksara, kuantiti tersuai, paparan dan sekatan Mari kita lihat jadual dan sebagainya pada. Saya harap ia akan membantu semua orang.

13 kata kunci yang anda mesti tahu untuk mempelajari MySQL (perkongsian ringkasan)

Pembelajaran yang disyorkan: tutorial video mysql

Tiga paradigma

  • Bentuk biasa pertama: Setiap lajur setiap jadual mesti mengekalkan keatomannya, iaitu setiap lajur jadual tidak boleh dibahagikan; mengekalkan keunikan, iaitu medan bukan kunci utama jadual bergantung sepenuhnya pada medan kunci utama
  • Bentuk normal ketiga: Atas dasar memenuhi bentuk normal pertama dan bentuk normal kedua, tiada pemindahan; boleh berlaku dalam Jadual Hubungan, untuk menghapuskan lebihan dalam jadual;

2 pangkalan data, seperti perakaunan Berapa banyak ruang, aksara mana yang disokong, dsb. Set aksara yang berbeza mempunyai peraturan pengekodan yang berbeza Dalam sesetengah kes, terdapat juga peraturan penyemakan pruf merujuk kepada pengisihan set aksara Dalam operasi dan penyelenggaraan pangkalan data MySQL, adalah sangat penting untuk memilih set aksara yang sesuai . Jika pemilihan tidak sesuai, prestasi pangkalan data mungkin terjejas sekurang-kurangnya, dan storan data mungkin bercelaru dalam kes yang serius. Terdapat empat set aksara MySQl biasa utama:

Dalam pembangunan dan pengendalian pangkalan data MySQL, peraturan pemilihan set aksara adalah seperti berikut:

  1. Jika sistem dibangunkan untuk perniagaan asing dan perlu berurusan dengan negara dan bahasa yang berbeza, anda harus pilih utf-8 atau utf8mb4;
  2. Jika anda hanya perlu menyokong bahasa Cina dan tidak mempunyai perniagaan asing, anda boleh menggunakan GBK atas sebab prestasi; . Pembolehubah tersuai
Pembolehubah tersuai ialah bekas sementara yang digunakan untuk menyimpan kandungan dan wujud sepanjang proses penyambungan ke MySQL. Ia boleh ditakrifkan menggunakan set.

Nota tentang menggunakan pembolehubah tersuai:

SET @last_week := CURRENT_DATE-INTERVAL 1 WEEK;SELECT id,name from user where create_time > @last_week;
Salin selepas log masuk
Pertanyaan menggunakan pembolehubah tersuai tidak boleh menggunakan caching; digunakan di mana pemalar atau pengecam digunakan, seperti nama jadual, nama lajur dan klausa had; antara sambungan;

  • Elakkan berulang kali menanyakan data yang baru dikemas kini

    Jika anda ingin mendapatkan maklumat baris semasa mengemas kini baris, anda mesti Apa yang boleh dilakukan untuk mengelakkan pertanyaan pendua?
  • Secara umumnya lakukan ini:

  • Menggunakan pembolehubah tersuai boleh mengoptimumkannya:
  • Ia masih kelihatan seperti dua pertanyaan, tetapi kali kedua Pertanyaan itu tidak perlu mengakses mana-mana jadual data, jadi ia akan menjadi lebih pantas.

4 Pilih jenis data yang dioptimumkan

MySQL menyokong banyak jenis data dan memilih jenis data yang betul adalah penting untuk mencapai prestasi tinggi.

update user set update_time = now() where id = 1;select update_time from user where id = 1;
Salin selepas log masuk

(1) Lebih kecil

update user set update_time = now() where id = 1 and @now := now();select @now;
Salin selepas log masuk
Secara umum, anda harus cuba menggunakan jenis data yang lebih kecil biasanya lebih cepat kerana ia menduduki ruang yang lebih kecil dan cache CPU memerlukan kitaran CPU yang lebih pendek untuk pemprosesan.

(2) Lebih ringkas

Jenis data ringkas biasanya memerlukan kitaran CPU yang lebih sedikit, dan pembentukan lebih murah daripada jenis rentetan kerana set aksara dan penentukuran Peraturan pengesahan membuat perbandingan aksara lebih kompleks daripada perbandingan integer.

(3) Cuba elakkan NULL

Banyak jadual mengandungi lajur NULL, walaupun aplikasi tidak perlu menyimpan NULL, kerana NULL ialah sifat Lalai untuk lajur, biasanya adalah yang terbaik untuk menentukan lajur sebagai BUKAN NULL.

Jika pertanyaan mengandungi lajur NULLable, lebih sukar untuk MySQL mengoptimumkan kerana lajur NULLable menjadikan indeks, statistik indeks dan perbandingan nilai lebih kompleks. Lajur boleh NULL menggunakan lebih banyak ruang storan dan memerlukan pengendalian khas dalam MySQL Apabila lajur boleh NULL diindeks, setiap rekod indeks memerlukan bait tambahan, yang mungkin menghasilkan saiz tetap dalam MyISAM Indeks itu menjadi indeks saiz berubah .

5. Paparan

Pandangan ialah jadual maya, jadual logik yang tidak mengandungi data itu sendiri. Disimpan dalam kamus data sebagai pernyataan pilih. Untuk pertanyaan kompleks pada berbilang jadual, menggunakan paparan boleh memudahkan pertanyaan Apabila paparan menggunakan jadual sementara, keadaan tempat tidak boleh digunakan dan indeks tidak boleh digunakan.

Paparan jadual tunggal biasanya digunakan untuk pertanyaan dan pengubahsuaian, yang akan mengubah data paparan jadual berbilang biasanya digunakan untuk pertanyaan dan tidak akan mengubah data jadual asas.

Tujuan menggunakan paparan adalah untuk memastikan keselamatan data dan meningkatkan kecekapan pertanyaan.

Kelebihan paparan:

Pengguna yang menggunakan paparan tidak perlu mengambil berat tentang struktur, keadaan persatuan dan keadaan penapisan jadual yang sepadan . Kepada pengguna, ia sudah menjadi set hasil keadaan kompaun yang ditapis.

Pengguna yang menggunakan paparan hanya boleh mengakses set hasil yang mereka dibenarkan untuk membuat pertanyaan Pengurusan kebenaran jadual tidak boleh dihadkan kepada baris atau lajur tertentu, tetapi ia boleh dilakukan dengan mudah pandangan itu.

Setelah struktur paparan ditentukan, kesan perubahan dalam struktur jadual pada pengguna boleh dilindungi nama dalam jadual sumber boleh dilakukan dengan mengubah suai pandangan Diselesaikan tanpa menyebabkan sebarang kesan kepada pelawat.

  • 6. Cache jadual dan jadual ringkasan
  • Kadangkala cara terbaik untuk meningkatkan prestasi adalah dengan menyimpan data berlebihan yang diperolehi dalam jadual yang sama anda juga perlu mencipta jadual ringkasan atau jadual cache yang bebas sepenuhnya.

  • Jadual cache digunakan untuk menyimpan data yang mudah diperoleh tetapi lambat; >
  • Untuk jadual cache, jika jadual utama menggunakan InnoDB, menggunakan MyISAM sebagai enjin untuk jadual cache akan menghasilkan jejak indeks yang lebih kecil dan perolehan semula teks penuh.

  • Apabila menggunakan jadual cache dan jadual ringkasan, anda mesti memutuskan sama ada untuk mengekalkan data dalam masa nyata atau membina semula secara berkala. Mana yang lebih baik bergantung pada aplikasi, tetapi pembinaan semula biasa bukan sahaja menjimatkan sumber, ia juga mengekalkan jadual daripada berpecah-belah dan mempunyai indeks tersusun sepenuhnya secara berurutan.

Apabila membina semula jadual ringkasan dan jadual cache, biasanya perlu memastikan bahawa data masih tersedia semasa operasi Ini perlu dicapai dengan menggunakan jadual bayang-bayang merujuk kepada jadual yang dibuat di belakang jadual sebenar. Selepas operasi penciptaan jadual selesai, jadual bayangan dan jadual asal boleh ditukar melalui operasi penamaan semula atom.

Untuk meningkatkan kelajuan membaca, kami sering membina beberapa indeks tambahan, menambah lajur berlebihan, malah membuat jadual cache dan jadual ringkasan kaedah ini akan meningkatkan beban penulisan dan memerlukan tugas penyelenggaraan tambahan, tetapi apabila mereka bentuk yang tinggi. pangkalan data prestasi Ini adalah teknik biasa, dan walaupun operasi tulis lebih perlahan, prestasi baca bertambah baik dengan ketara.

7. Jadual pembahagian

Biasanya, data dalam jadual yang sama disimpan bersama pada tahap fizikal. Apabila perniagaan berkembang, apabila jumlah data dalam jadual yang sama menjadi terlalu besar, ia akan menyebabkan kesulitan pengurusan. Ciri partition boleh membahagikan jadual secara fizikal kepada berbilang partition berdasarkan peraturan tertentu Pelbagai partition boleh diuruskan secara berasingan atau disimpan pada cakera/sistem fail yang berbeza untuk meningkatkan kecekapan.

Kelebihan jadual partition:

  • Data boleh disimpan merentas cakera, sesuai untuk menyimpan jumlah data yang besar;

  • Pengurusan data sangat mudah, data pengendalian dalam partition tidak menjejaskan operasi normal partition lain
  • Apabila membuat pertanyaan, anda boleh mengecilkan skop pertanyaan dan tingkatkan pertanyaan dengan mengunci ciri Prestasi partition;

8. Kunci asing biasanya memerlukan operasi tambahan dalam jadual lain setiap kali data diubah suai Untuk operasi pertanyaan, walaupun InnoDB memaksa kunci asing untuk menggunakan indeks, ia masih tidak dapat menghapuskan overhed semakan kekangan ini. Jika selektiviti kunci asing adalah sangat rendah, ini akan menghasilkan indeks yang sangat selektif. Walau bagaimanapun, dalam beberapa senario, kunci asing akan meningkatkan prestasi Contohnya, jika anda ingin memastikan bahawa dua jadual berkaitan sentiasa mempunyai data yang konsisten, maka menggunakan kunci asing adalah lebih berprestasi daripada menyemak konsistensi dalam aplikasi lagi, selain itu. Kunci asing juga lebih cekap dalam memadam dan mengemas kini data berkaitan daripada mengekalkannya dalam aplikasi Walau bagaimanapun, operasi penyelenggaraan kunci asing dilakukan berturut-turut, dan kemas kini sedemikian akan menjadi lebih perlahan daripada pemadaman dan kemas kini kelompok.

Kekangan kunci asing memerlukan akses tambahan kepada jadual lain semasa pertanyaan, yang memerlukan kunci tambahan. Jika rekod ditulis pada jadual anak, kekangan kunci asing akan menyebabkan InnoDB menyemak rekod sepadan jadual induk, yang bermaksud bahawa rekod sepadan jadual induk perlu dikunci untuk memastikan rekod ini tidak akan hilang selepas transaksi telah dipadamkan. Ini boleh menyebabkan menunggu kunci tambahan dan juga beberapa kebuntuan. Oleh kerana tiada akses langsung kepada jadual ini, kebuntuan jenis ini sukar untuk diselesaikan.

Jadi, dalam banyak projek semasa, kunci asing tidak lagi digunakan atas sebab prestasi.

9. Cache pertanyaan

Cache pertanyaan MySQL menyimpan hasil lengkap yang dikembalikan oleh pertanyaan Apabila pertanyaan mencecah cache, MySQL akan mengembalikan hasilnya dengan serta-merta, melangkau penghuraian , pengoptimuman dan proses pelaksanaan.

Sistem cache pertanyaan akan menjejaki setiap jadual yang terlibat dalam pertanyaan Jika jadual ini berubah, semua data cache yang berkaitan dengan jadual ini akan menjadi tidak sah kelihatan agak rendah, kerana hasil pertanyaan mungkin tidak terjejas apabila jadual data berubah, tetapi kos pelaksanaan mudah ini sangat kecil, dan ini sangat penting untuk sistem yang sangat sibuk.

(1) Bagaimanakah MySQL menentukan maklumat cache? Sebarang perbezaan aksara, seperti ruang atau ulasan, akan menyebabkan cache terlepas. Umumnya menggunakan peraturan pengekodan bersatu adalah tabiat yang baik dan akan menjadikan sistem anda berjalan lebih pantas.

Apabila terdapat beberapa data yang tidak pasti dalam pernyataan pertanyaan, ia tidak akan dicache, seperti fungsi now(). Malah, jika cache mengandungi sebarang fungsi yang ditentukan pengguna, fungsi tersimpan, pembolehubah pengguna, jadual sementara, jadual sistem MySQL atau mana-mana jadual yang mengandungi kebenaran peringkat lajur, ia tidak akan dicache.

(2) Gunakan cache pertanyaan dengan berhati-hati

Membuka cache pertanyaan akan menyebabkan penggunaan tambahan untuk kedua-dua operasi baca dan tulis:

Pertanyaan baca mesti terlebih dahulu menyemak sama ada ia mencecah cache sebelum melaksanakan

    Jika pertanyaan baca boleh dicache, maka selepas pelaksanaan selesai, MySQL akan mendapati bahawa pertanyaan tiada dalam cache. Simpan hasil dalam cache pertanyaan, yang akan membawa penggunaan sistem tambahan; MySQL mesti Semua tetapan cache untuk jadual yang sepadan adalah tidak sah. Jika cache pertanyaan adalah sangat besar atau berpecah-belah, operasi ini boleh menyebabkan banyak penggunaan sistem; Walau bagaimanapun, penggunaan tambahan yang disebutkan di atas juga mungkin terus meningkat Selain itu, operasi cache pertanyaan adalah operasi eksklusif mengunci, dan penggunaan ini bukan sedikit.
  • Bagi pengguna InnoDB, beberapa ciri transaksi akan mengehadkan penggunaan cache pertanyaan. Apabila kenyataan mengubah suai jadual dalam urus niaga, MySQL akan membatalkan tetapan cache pertanyaan yang sepadan dengan jadual sebelum transaksi diserahkan Oleh itu, urus niaga yang berjalan lama akan mengurangkan kadar hit cache pertanyaan.

    (3) Cara menganalisis dan mengkonfigurasi cache pertanyaan

    10 Prosedur tersimpan

    Prosedur tersimpan ialah satu set prosedur direka untuk melengkapkan fungsi tertentu Koleksi pernyataan SQL disusun dan disimpan dalam pangkalan data Dengan menyatakan nama prosedur yang disimpan dan memberikan nilai parameter, keputusan juga boleh dikembalikan.

    Kelebihan prosedur tersimpan:

    • Kurangkan trafik rangkaian

    • Tingkatkan kelajuan pelaksanaan

    • Kurangkan bilangan sambungan pangkalan data

    • Keselamatan tinggi

    • Kebolehgunaan semula yang tinggi

    Kelemahan prosedur tersimpan:

    • Kemudahalihan yang lemah

    11. Transaksi

    Penyata dalam transaksi sama ada akan dilaksanakan atau tidak dilaksanakan sama sekali. Urus niaga mempunyai ciri-ciri ACID, yang mewakili atomicity, konsistensi, pengasingan dan ketahanan.

    (1) Atomicity (atomicity)

    Sesuatu transaksi mesti dianggap sebagai unit kerja minimum yang tidak boleh dibahagikan, dan semua operasi dalam keseluruhan transaksi mesti dilaksanakan sepenuhnya atau komited Kejayaan, atau rollback atas kegagalan.

    (2) Konsistensi (konsistensi)

    Pangkalan data sentiasa beralih dari satu keadaan konsisten ke keadaan konsisten yang lain.

    (3) Pengasingan

    Pengubahsuaian yang dibuat oleh satu transaksi tidak dapat dilihat oleh transaksi lain sebelum penyerahan akhir.

    (4) Ketahanan (ketahanan)

    Setelah transaksi diserahkan, pengubahsuaian yang dibuat akan disimpan secara kekal dalam pangkalan data.

    12. Indeks

    Indeks ialah struktur data yang digunakan oleh enjin storan untuk mencari rekod dengan cepat. Saya fikir titik pengetahuan yang paling penting dalam pangkalan data ialah indeks.

    Enjin storan menggunakan indeks B-Tree dengan cara yang berbeza, dengan prestasi yang berbeza serta kebaikan dan keburukan. Contohnya, MyISAM menggunakan teknologi mampatan awalan untuk menjadikan indeks lebih kecil, tetapi InnoDB menyimpannya dalam format data asal. MyISAM mengindeks baris diindeks rujukan mengikut lokasi fizikal data, manakala InnoDB merujuk baris diindeks oleh kunci utamanya.

    13 kata kunci yang anda mesti tahu untuk mempelajari MySQL (perkongsian ringkasan)

    B-Tree biasanya bermaksud semua nilai disimpan mengikut tertib, dan setiap halaman daun adalah jarak yang sama dari akar.

    Indeks B-Tree boleh mempercepatkan akses data kerana enjin storan tidak lagi perlu melakukan imbasan jadual penuh untuk mendapatkan data yang diperlukan, sebaliknya mencari dari nod akar indeks. Slot nod akar menyimpan penunjuk ke nod anak, dan enjin storan mencari ke bawah berdasarkan penunjuk ini. Dengan membandingkan nilai halaman nod dengan nilai yang anda cari, anda boleh mencari penunjuk yang sesuai ke dalam nod anak bawah sebenarnya mentakrifkan sempadan atas dan bawah nilai dalam halaman nod anak. Akhirnya enjin storan sama ada mencari nilai yang sepadan atau rekod tidak wujud.

    Nod daun adalah istimewa, penunjuknya menghala ke data yang diindeks, bukan halaman nod lain. B-Tree menyusun dan menyimpan lajur indeks secara berurutan, jadi ia sangat sesuai untuk mencari data julat. B-Tree sesuai untuk nilai kunci penuh, julat nilai kunci atau carian awalan kunci.
    Oleh kerana nod dalam pepohon indeks disusun, selain mencari mengikut nilai, indeks juga boleh digunakan untuk pesanan mengikut operasi dalam pertanyaan. Secara umumnya, jika B-Tree boleh mencari nilai dengan cara tertentu, ia juga boleh digunakan untuk mengisih dengan cara ini.

    13. Indeks teks penuh

    Tujuan indeks teks penuh adalah untuk melaksanakan penapisan pertanyaan melalui padanan kata kunci, berdasarkan pertanyaan persamaan, dan bukannya pertanyaan tepat.

    Indeks teks penuh menggunakan teknologi pembahagian perkataan untuk menganalisis kekerapan dan kepentingan kata kunci tertentu dalam teks dan menapis secara bijak hasil yang kita inginkan mengikut algoritma tertentu.

    Indeks teks penuh biasanya digunakan untuk menanyakan kata kunci tertentu dalam rentetan, seperti char, varchar dan teks Ia juga menyokong indeks teks penuh bahasa asli dan indeks teks penuh Boolean.

    Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci 13 kata kunci yang anda mesti tahu untuk mempelajari MySQL (perkongsian ringkasan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan