


Terangkan secara terperinci sub-jadual, sub-pangkalan data, serpihan dan sekatan dalam MySql
1. PENGENALAN
Selepas jumlah data dalam pangkalan data mencapai tahap tertentu, untuk mengelakkan kesesakan dalam prestasi sistem. Data perlu diproses dengan cara pembahagian, sharding, pangkalan data dan jadual.
2. Sharding (serupa dengan sharding)
Sharding ialah cara yang berkesan untuk menskalakan pangkalan data kepada berbilang nod fizikal , tujuan utamanya adalah untuk menembusi I /O had kapasiti pelayan pangkalan data nod tunggal dan menyelesaikan masalah kebolehskalaan pangkalan data. Perkataan serpihan bermaksud "serpihan". Jika pangkalan data dianggap sebagai sekeping kaca yang besar dan kaca itu pecah, maka setiap kepingan kecil dipanggil serpihan pangkalan data (Database Shard). Proses memecah seluruh pangkalan data menjadi kepingan dipanggil sharding, yang boleh diterjemahkan sebagai sharding.
Secara formal, sharding boleh ditakrifkan secara ringkas sebagai skema pembahagian yang mengedarkan pangkalan data yang besar merentasi berbilang nod fizikal. Setiap partition mengandungi bahagian tertentu dalam pangkalan data, dipanggil slice Kaedah pembahagian boleh sewenang-wenangnya dan tidak terhad kepada pembahagian mendatar tradisional dan pembahagian menegak. Serpihan boleh mengandungi kandungan berbilang jadual atau bahkan berbilang contoh pangkalan data. Setiap serpihan diletakkan pada pelayan pangkalan data. Pelayan pangkalan data boleh mengendalikan satu atau lebih serpihan data. Pelayan diperlukan dalam sistem untuk penghalaan dan pemajuan pertanyaan, dan bertanggungjawab untuk memajukan pertanyaan kepada nod pengumpulan shard atau shard yang mengandungi data yang diakses oleh pertanyaan untuk pelaksanaan.
3. Scale Out/Scale Up dan vertical split/horizontal split
Penyelesaian pengembangan MySQL termasuk Scale Out dan Scale Up.
Scale Out (pengembangan mendatar) bermakna Aplikasi boleh dikembangkan dalam arah mendatar. Secara umumnya, untuk aplikasi pusat data, Scale out bermakna apabila lebih banyak mesin ditambah, aplikasi masih boleh menggunakan sumber mesin ini dengan baik untuk meningkatkan kecekapannya sendiri dan mencapai kebolehskalaan yang baik.
Scale Up (pengembangan menegak) bermakna Aplikasi boleh berkembang dalam arah menegak. Secara umumnya, untuk satu mesin, nilai Scale Up ialah apabila nod pengkomputeran (mesin) menambah lebih banyak Teras CPU, peranti storan, dan menggunakan memori yang lebih besar, aplikasi boleh menggunakan sepenuhnya sumber ini untuk meningkatkan kecekapannya mencapai kebolehskalaan yang baik.
Strategi Sharding MySql termasuk sharding menegak dan sharding mendatar.
Pecahan menegak (menegak): merujuk kepada pemisahan mengikut modul berfungsi untuk menyelesaikan persaingan io antara jadual. Sebagai contoh, ia dibahagikan kepada pangkalan data pesanan, pangkalan data produk, pangkalan data pengguna... Dengan cara ini, struktur jadual berbilang pangkalan data adalah berbeza.
Pecahan mendatar (mendatar): Simpan data jadual yang sama dalam blok dan simpan dalam pangkalan data yang berbeza untuk menyelesaikan tekanan peningkatan volum data dalam satu jadual. Struktur jadual dalam pangkalan data ini adalah sama.
Struktur meja direka bentuk untuk dibahagikan secara menegak. Beberapa senario biasa termasuk
pemisahan menegak medan besar. Bina medan besar secara berasingan dalam jadual lain untuk meningkatkan prestasi capaian jadual asas Pada dasarnya, dalam aplikasi kritikal prestasi, medan besar dalam pangkalan data harus dielakkan
Pembahagian menegak kepada penggunaan. Contohnya, atribut bahan perusahaan boleh dibahagikan secara menegak mengikut atribut asas, atribut jualan, atribut pembelian, atribut pembuatan, atribut perakaunan kewangan, dsb.
Dibahagikan secara menegak mengikut kekerapan akses. Sebagai contoh, dalam sistem e-dagang dan Web 2.0, jika terdapat banyak tetapan atribut pengguna, anda boleh mengasingkan atribut asas, kerap digunakan dan atribut yang jarang digunakan secara menegak
Segmen mendatar dalam reka bentuk struktur meja. Beberapa senario biasa termasuk
-
Sebagai contoh, pada tapak web e-dagang dalam talian, jumlah data jadual pesanan terlalu besar dan dibahagikan pada peringkat tahunan dan bulanan
Web 2.0 Terdapat terlalu ramai pengguna berdaftar dan pengguna aktif dalam talian di tapak web Menurut julat ID pengguna, dsb., bahagikan secara mendatar pengguna yang berkaitan dan jadual yang berkait rapat dengan pengguna
- Contohnya, siaran teratas forum, Kerana ia melibatkan isu paging, setiap halaman perlu memaparkan siaran yang disematkan Dalam kes ini, siaran yang disematkan boleh dipisahkan secara mendatar untuk mengelakkan bacaan daripada jadual semua siaran apabila mengambil siaran yang disematkan
4. Pembahagian jadual dan pembahagian
Pecahan jadual secara cetek bermakna membahagikan jadual kepada beberapa jadual kecil. , manakala pembahagian bermakna membahagikan data jadual kepada N kawasan, yang boleh berada pada cakera yang sama atau pada cakera yang berbeza.Perbezaan antara sharding dan partitioning
- Dari segi pelaksanaan
- Dari segi pemprosesan data
Selepas memisahkan jadual, data disimpan dalam jadual pisah Jadual utama hanyalah shell, dan mengakses data berlaku dalam setiap jadual split . Tiada konsep pembahagian jadual dalam pembahagian hanya membahagikan fail yang menyimpan data kepada banyak blok kecil Jadual pembahagian masih satu jadual, dan pemprosesan data masih disiapkan sendiri.
- Dari segi meningkatkan prestasi
Selepas memisahkan jadual, keupayaan konkurensi satu jadual telah dipertingkatkan dan prestasi I/O cakera juga telah dipertingkatkan . Pemisahan menembusi kesesakan cakera I/O, dan saya ingin meningkatkan keupayaan baca dan tulis cakera untuk meningkatkan prestasi mysql.
Pada ketika ini, fokus ujian bagi partition dan sub-jadual adalah berbeza Fokus sub-jadual ialah bagaimana untuk meningkatkan concurrency MySQL apabila mengakses data dan untuk partition, bagaimana untuk memecahkan bacaan dan menulis keupayaan cakera untuk mencapai Tujuan meningkatkan prestasi mysql.
- Dari segi kesukaran pelaksanaan,
Terdapat banyak cara untuk memisahkan jadual Menggunakan gabungan untuk memisahkan jadual adalah cara yang paling mudah. Kaedah ini semudah membahagikan dan boleh telus kepada kod program. Jika anda menggunakan kaedah pembahagian jadual lain, ia akan menjadi lebih menyusahkan daripada pembahagian. Pelaksanaan pembahagian adalah agak mudah Mencipta jadual pembahagian tidak berbeza daripada membina jadual biasa, dan ia adalah telus kepada bahagian kod.
Senario pembahagian yang berkenaan
Apabila kelajuan pertanyaan jadual telah cukup perlahan untuk menjejaskan penggunaannya.
Data dalam jadual dibahagikan
-
Operasi pada data selalunya hanya melibatkan sebahagian daripada data, bukan semua data
CREATE TABLE sales ( id INT AUTO_INCREMENT, amount DOUBLE NOT NULL, order_day DATETIME NOT NULL, PRIMARY KEY(id, order_day)) ENGINE=InnodbPARTITION BY RANGE(YEAR(order_day)) ( PARTITION p_2010 VALUES LESS THAN (2010), PARTITION p_2011 VALUES LESS THAN (2011), PARTITION p_2012 VALUES LESS THAN (2012),PARTITION p_catchall VALUES LESS THAN MAXVALUE);
Senario terpakai bagi sub-jadual
Apabila kelajuan pertanyaan jadual telah cukup perlahan untuk menjejaskan penggunaannya .
Apabila memasukkan pertanyaan dengan kerap atau menyertai pertanyaan, kelajuan akan menjadi perlahan.
Pelaksanaan sub-jadual memerlukan gabungan pelaksanaan perniagaan dan migrasi, yang agak kompleks.
5 Pembahagian dan pemecahan jadual
Pemberian boleh menyelesaikan masalah pengurangan kecekapan pertanyaan yang disebabkan oleh volum data yang berlebihan dalam satu jadual, tetapi ia tidak dapat menyediakan data yang mencukupi untuk pangkalan data. Keupayaan pemprosesan serentak membawa peningkatan kualitatif. Dalam menghadapi akses baca dan tulis yang sangat serentak, apabila pelayan induk pangkalan data tidak dapat menanggung tekanan operasi menulis, ia tidak bermakna tidak kira bagaimana untuk mengembangkan pelayan hamba. Oleh itu, kita mesti mengubah pemikiran kita dan memisahkan pangkalan data untuk meningkatkan keupayaan menulis pangkalan data Ini adalah apa yang dipanggil sub-pangkalan data.
Sama seperti strategi pembahagian jadual, pembahagian boleh menggunakan modulo kata kunci untuk menghalakan akses data, seperti yang ditunjukkan dalam rajah di bawah
6. Perbezaan antara pembahagian dan pembahagian teks asal
Pembelajaran yang disyorkan: "tutorial video mysql"
Atas ialah kandungan terperinci Terangkan secara terperinci sub-jadual, sub-pangkalan data, serpihan dan sekatan dalam MySql. 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

AI Hentai Generator
Menjana ai hentai secara percuma.

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



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.

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.

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.

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

MySQL dan SQL adalah kemahiran penting untuk pemaju. 1.MYSQL adalah sistem pengurusan pangkalan data sumber terbuka, dan SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data. 2.MYSQL menyokong pelbagai enjin penyimpanan melalui penyimpanan data yang cekap dan fungsi pengambilan semula, dan SQL melengkapkan operasi data yang kompleks melalui pernyataan mudah. 3. Contoh penggunaan termasuk pertanyaan asas dan pertanyaan lanjutan, seperti penapisan dan penyortiran mengikut keadaan. 4. Kesilapan umum termasuk kesilapan sintaks dan isu -isu prestasi, yang boleh dioptimumkan dengan memeriksa penyataan SQL dan menggunakan perintah menjelaskan. 5. Teknik pengoptimuman prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi menyertai dan meningkatkan kebolehbacaan kod.

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

Memulihkan baris yang dipadam secara langsung dari pangkalan data biasanya mustahil melainkan ada mekanisme sandaran atau transaksi. Titik Utama: Rollback Transaksi: Jalankan balik balik sebelum urus niaga komited untuk memulihkan data. Sandaran: Sandaran biasa pangkalan data boleh digunakan untuk memulihkan data dengan cepat. Snapshot Pangkalan Data: Anda boleh membuat salinan bacaan pangkalan data dan memulihkan data selepas data dipadam secara tidak sengaja. Gunakan Pernyataan Padam dengan berhati -hati: Periksa syarat -syarat dengan teliti untuk mengelakkan data yang tidak sengaja memadamkan. Gunakan klausa WHERE: Secara jelas menentukan data yang akan dipadam. Gunakan Persekitaran Ujian: Ujian Sebelum Melaksanakan Operasi Padam.
