cari
Rumahpangkalan datatutorial mysqlPenjelasan terperinci tentang jadual MySql, pangkalan data, serpihan dan partition

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);

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
Artikel ini dikembalikan pada:learnku. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Terangkan sifat asid (atom, konsistensi, pengasingan, ketahanan).Terangkan sifat asid (atom, konsistensi, pengasingan, ketahanan).Apr 16, 2025 am 12:20 AM

Atribut asid termasuk atom, konsistensi, pengasingan dan ketahanan, dan merupakan asas reka bentuk pangkalan data. 1. Atomicity memastikan bahawa urus niaga sama ada berjaya atau gagal sepenuhnya. 2. Konsistensi memastikan pangkalan data tetap konsisten sebelum dan selepas transaksi. 3. Pengasingan memastikan bahawa urus niaga tidak mengganggu satu sama lain. 4. Kegigihan memastikan data disimpan secara kekal selepas penyerahan transaksi.

MySQL: Sistem Pengurusan Pangkalan Data vs Bahasa PengaturcaraanMySQL: Sistem Pengurusan Pangkalan Data vs Bahasa PengaturcaraanApr 16, 2025 am 12:19 AM

MySQL bukan sahaja sistem pengurusan pangkalan data (DBMS) tetapi juga berkait rapat dengan bahasa pengaturcaraan. 1) Sebagai DBMS, MySQL digunakan untuk menyimpan, menyusun dan mengambil data, dan mengoptimumkan indeks dapat meningkatkan prestasi pertanyaan. 2) Menggabungkan SQL dengan bahasa pengaturcaraan, tertanam dalam Python, menggunakan alat ORM seperti SQLalChemy dapat memudahkan operasi. 3) Pengoptimuman prestasi termasuk pengindeksan, pertanyaan, caching, perpustakaan dan bahagian meja dan pengurusan transaksi.

MySQL: Menguruskan data dengan arahan SQLMySQL: Menguruskan data dengan arahan SQLApr 16, 2025 am 12:19 AM

MySQL menggunakan arahan SQL untuk menguruskan data. 1. Perintah asas termasuk pilih, masukkan, kemas kini dan padam. 2. Penggunaan lanjutan melibatkan fungsi gabungan, subquery dan agregat. 3. Kesilapan umum termasuk isu sintaks, logik dan prestasi. 4. Petua Pengoptimuman termasuk menggunakan indeks, mengelakkan Pilih* dan menggunakan had.

Tujuan Mysql: Menyimpan dan Menguruskan Data dengan berkesanTujuan Mysql: Menyimpan dan Menguruskan Data dengan berkesanApr 16, 2025 am 12:16 AM

MySQL adalah sistem pengurusan pangkalan data relasi yang sesuai untuk menyimpan dan menguruskan data. Kelebihannya termasuk pertanyaan berprestasi tinggi, pemprosesan transaksi fleksibel dan jenis data yang kaya. Dalam aplikasi praktikal, MySQL sering digunakan dalam platform e-dagang, rangkaian sosial dan sistem pengurusan kandungan, tetapi perhatian harus dibayar kepada pengoptimuman prestasi, keselamatan data dan skalabilitas.

SQL dan MySQL: Memahami hubunganSQL dan MySQL: Memahami hubunganApr 16, 2025 am 12:14 AM

Hubungan antara SQL dan MySQL adalah hubungan antara bahasa standard dan pelaksanaan khusus. 1. SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data relasi, membolehkan penambahan data, penghapusan, pengubahsuaian dan pertanyaan. 2.MYSQL adalah sistem pengurusan pangkalan data tertentu yang menggunakan SQL sebagai bahasa pengendaliannya dan menyediakan penyimpanan dan pengurusan data yang cekap.

Terangkan peranan log redo innoDB dan membatalkan log.Terangkan peranan log redo innoDB dan membatalkan log.Apr 15, 2025 am 12:16 AM

InnoDB menggunakan redolog dan undologs untuk memastikan konsistensi dan kebolehpercayaan data. 1. Pengubahsuaian halaman data rekod untuk memastikan pemulihan kemalangan dan kegigihan transaksi. 2.UNDOLOGS merekodkan nilai data asal dan menyokong penggantian transaksi dan MVCC.

Apakah metrik utama untuk dicari dalam output yang dijelaskan (jenis, kunci, baris, tambahan)?Apakah metrik utama untuk dicari dalam output yang dijelaskan (jenis, kunci, baris, tambahan)?Apr 15, 2025 am 12:15 AM

Metrik utama untuk menjelaskan arahan termasuk jenis, kunci, baris, dan tambahan. 1) Jenis mencerminkan jenis akses pertanyaan. Semakin tinggi nilai, semakin tinggi kecekapan, seperti const adalah lebih baik daripada semua. 2) Kunci memaparkan indeks yang digunakan, dan null menunjukkan tiada indeks. 3) Baris menganggarkan bilangan baris yang diimbas, yang mempengaruhi prestasi pertanyaan. 4) Tambahan memberikan maklumat tambahan, seperti menggunakanFilesort meminta bahawa ia perlu dioptimumkan.

Apakah status sementara dalam menjelaskan dan bagaimana untuk mengelakkannya?Apakah status sementara dalam menjelaskan dan bagaimana untuk mengelakkannya?Apr 15, 2025 am 12:14 AM

MenggunakanTemary menunjukkan bahawa keperluan untuk membuat jadual sementara dalam pertanyaan MySQL, yang biasanya dijumpai di Orderby menggunakan lajur yang berbeza, GroupBy, atau tidak diindeks. Anda boleh mengelakkan berlakunya indeks dan menulis semula pertanyaan dan meningkatkan prestasi pertanyaan. Khususnya, apabila menggunakan pembelian muncul dalam menjelaskan output, ini bermakna MySQL perlu membuat jadual sementara untuk mengendalikan pertanyaan. Ini biasanya berlaku apabila: 1) deduplikasi atau pengelompokan apabila menggunakan yang berbeza atau kumpulan; 2) Susun apabila Orderby mengandungi lajur bukan indeks; 3) Gunakan subquery kompleks atau menyertai operasi. Kaedah Pengoptimuman termasuk: 1) Orderby dan GroupB

See all articles

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular