Jadual Kandungan
1. PENGENALAN " > 1. PENGENALAN
4. Pembahagian jadual dan pembahagian" >4. Pembahagian jadual dan pembahagian
Perbezaan antara sharding dan partitioning" >Perbezaan antara sharding dan partitioning
Rumah pangkalan data tutorial mysql Penjelasan terperinci tentang jadual MySql, pangkalan data, serpihan dan partition

Penjelasan terperinci tentang jadual MySql, pangkalan data, serpihan dan partition

Sep 18, 2021 pm 04:22 PM
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.

    Dari segi pelaksanaan
sharding mysql ialah sharding sebenar dibahagikan kepada banyak jadual, setiap jadual kecil ialah jadual lengkap dan sepadan dengan tiga fail (enjin MyISAM: fail data .MYD, fail indeks .MYI dan fail struktur jadual .frm).

  • 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

  1. Apabila kelajuan pertanyaan jadual telah cukup perlahan untuk menjejaskan penggunaannya.

  2. Data dalam jadual dibahagikan

  3. 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);
Salin selepas log masuk

Senario terpakai bagi sub-jadual

  1. Apabila kelajuan pertanyaan jadual telah cukup perlahan untuk menjejaskan penggunaannya .

  2. 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

Penjelasan terperinci tentang jadual MySql, pangkalan data, serpihan dan partition

6. Perbezaan antara pembahagian dan pembahagian teks asal

Penjelasan terperinci tentang jadual MySql, pangkalan data, serpihan dan partition

Disyorkan: "tutorial video mysql"

Atas ialah kandungan terperinci Penjelasan terperinci tentang jadual MySql, pangkalan data, serpihan dan partition. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1653
14
Tutorial PHP
1251
29
Tutorial C#
1224
24
Peranan MySQL: Pangkalan Data dalam Aplikasi Web Peranan MySQL: Pangkalan Data dalam Aplikasi Web Apr 17, 2025 am 12:23 AM

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.

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

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

Contoh Pengenalan Laravel Contoh Pengenalan Laravel Apr 18, 2025 pm 12:45 PM

Laravel adalah rangka kerja PHP untuk membina aplikasi web yang mudah. Ia menyediakan pelbagai ciri yang kuat termasuk: Pemasangan: Pasang Laravel CLI secara global dengan komposer dan buat aplikasi dalam direktori projek. Routing: Tentukan hubungan antara URL dan pengendali dalam laluan/web.php. Lihat: Buat pandangan dalam sumber/pandangan untuk menjadikan antara muka aplikasi. Integrasi Pangkalan Data: Menyediakan integrasi keluar-of-the-box dengan pangkalan data seperti MySQL dan menggunakan penghijrahan untuk membuat dan mengubah suai jadual. Model dan Pengawal: Model mewakili entiti pangkalan data dan proses pengawal permintaan HTTP.

Selesaikan masalah sambungan pangkalan data: Kes praktikal menggunakan perpustakaan mini/db Selesaikan masalah sambungan pangkalan data: Kes praktikal menggunakan perpustakaan mini/db Apr 18, 2025 am 07:09 AM

Saya menghadapi masalah yang rumit ketika membangunkan aplikasi kecil: keperluan untuk mengintegrasikan perpustakaan operasi pangkalan data ringan dengan cepat. Selepas mencuba beberapa perpustakaan, saya mendapati bahawa mereka mempunyai terlalu banyak fungsi atau tidak serasi. Akhirnya, saya dapati Minii/DB, versi mudah berdasarkan YII2 yang menyelesaikan masalah saya dengan sempurna.

Cara Memasang MySQL di CentOS7 Cara Memasang MySQL di CentOS7 Apr 14, 2025 pm 08:30 PM

Kunci untuk memasang MySQL dengan elegan adalah untuk menambah repositori MySQL rasmi. Langkah -langkah khusus adalah seperti berikut: Muat turun kekunci GPG rasmi MySQL untuk mencegah serangan pancingan data. Tambah fail repositori MySQL: rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm kemas kini yum repository cache: yum update mysql: yum pemasangan mysql-server mysql Server.

Kaedah pemasangan kerangka Laravel Kaedah pemasangan kerangka Laravel Apr 18, 2025 pm 12:54 PM

Ringkasan Artikel: Artikel ini menyediakan arahan langkah demi langkah terperinci untuk membimbing pembaca tentang cara memasang rangka kerja Laravel dengan mudah. Laravel adalah rangka kerja PHP yang kuat yang mempercepat proses pembangunan aplikasi web. Tutorial ini merangkumi proses pemasangan dari keperluan sistem untuk mengkonfigurasi pangkalan data dan menyediakan penghalaan. Dengan mengikuti langkah -langkah ini, pembaca dapat dengan cepat dan cekap meletakkan asas yang kukuh untuk projek Laravel mereka.

MySQL dan PHPMyAdmin: Ciri dan Fungsi Teras MySQL dan PHPMyAdmin: Ciri dan Fungsi Teras Apr 22, 2025 am 12:12 AM

MySQL dan phpmyadmin adalah alat pengurusan pangkalan data yang kuat. 1) MySQL digunakan untuk membuat pangkalan data dan jadual, dan untuk melaksanakan pertanyaan DML dan SQL. 2) Phpmyadmin menyediakan antara muka intuitif untuk pengurusan pangkalan data, pengurusan struktur meja, operasi data dan pengurusan kebenaran pengguna.

CentOS memasang MySQL CentOS memasang MySQL Apr 14, 2025 pm 08:09 PM

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.

See all articles