Rumah  >  Artikel  >  pangkalan data  >  Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

WBOY
WBOYke hadapan
2023-06-02 12:34:143334semak imbas

    1. Mengapa sub-database dan jadual

    Jika perniagaan tapak web berkembang pesat, trafik tapak web juga akan meningkat, dan tekanan ke atas data juga akan meningkat Sebagai contoh, untuk sistem e-dagang, promosi Double Eleven memberi banyak tekanan pada data pesanan, dengan ratusan ribu Tps serentak Jika seni bina tradisional (satu tuan dan berbilang hamba) digunakan, yang kapasiti pangkalan data utama pasti tidak akan dapat memenuhi Tps yang begitu tinggi , perniagaan semakin besar dan lebih besar, data jadual tunggal melebihi kapasiti yang disokong oleh pangkalan data, cakera berterusan IO, kesesakan prestasi pangkalan data tradisional, perniagaan pengurus produk. - mesti lakukan, menukar program, pengoptimuman segmentasi pisau pangkalan data. Disebabkan bilangan sambungan pangkalan data yang tidak mencukupi dan jumlah data yang besar dalam jadual, prestasi pertanyaan masih rendah walaupun selepas pengoptimuman, jadi pemisahan diperlukan.

    2. Apakah sub-pangkalan data dan sub-jadual

    • Penyelesaian sub-pangkalan data dan sub-jadual adalah tambahan kepada mekanisme penyimpanan data dan akses perhubungan pangkalan data.

    • Sub-pustaka: Pisah data satu perpustakaan kepada berbilang perpustakaan yang sama dan akses satu perpustakaan apabila mengakses

    • Pembahagian jadual: Letakkan data satu jadual ke dalam beberapa jadual dan kendalikan jadual yang sepadan

    3 Sub-pangkalan data dan sub-jadual Beberapa cara

    Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

    1. Pemisahan menegak

    (1) Pemisahan menegak pangkalan data

    Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

    Mengikut pembahagian perniagaan, seperti yang ditunjukkan dalam rajah, sistem e-dagang dibahagikan kepada perpustakaan pesanan, perpustakaan keahlian dan perpustakaan produk

    (2) Pembahagian menegak jadual

    Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

    Pisah jadual mengikut perniagaan, seperti yang ditunjukkan dalam rajah, bahagikan jadual pengguna kepada jadual user_base dan jadual user_info, use_base bertanggungjawab untuk menyimpan log masuk, user_info bertanggungjawab untuk menyimpan maklumat asas pengguna

    Ciri belah menegak:

    • Struktur setiap perpustakaan (jadual) adalah berbeza

    • Data dalam setiap perpustakaan (jadual) adalah sama dalam sekurang-kurangnya satu lajur

    • Kesatuan setiap perpustakaan (jadual) ialah jumlah penuh data

    Kelebihan dan Kekurangan Pemisahan Menegak

    Kelebihan:

    • Selepas perpecahan , perniagaan akan menjadi jelas (pangkalan data khas akan dibahagikan mengikut perniagaan)

    • Penyelenggaraan data adalah mudah, dan perniagaan diletakkan pada mesin yang berbeza mengikut perniagaan yang berbeza

    Kelemahan:

    • Jika jumlah data dalam satu jadual tinggi, tekanan menulis dan membaca adalah tinggi

    • Ia ditentukan oleh sesetengah perniagaan atau terhad, yang bermaksud bahawa perniagaan selalunya akan mempengaruhi Bottlenecks pangkalan data (isu prestasi, seperti jualan tergesa-gesa Double Eleven)

    • Sesetengah perniagaan tidak boleh dikaitkan dengan penyertaan dan hanya boleh dipanggil melalui antara muka program Java, yang meningkatkan kerumitan pembangunan

    2. Pecahan mendatar pangkalan data

    Seperti yang ditunjukkan dalam rajah, mengikut pangkalan data ahli Split, pecahkan kepada pangkalan data ahli 1, pangkalan data ahli 2, pecahkan mengikut userId, userId nombor ekor 0-5 ialah 1 pangkalan data, 6-9 ialah 2 pangkalan data, ada cara lain, ambil modulus, dan masukkan nombor genap ke dalam 1 pangkalan data Masukkan nombor ganjil dalam pangkalan data 2 Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

    (. 2) Bahagikan jadual secara mendatar

    Seperti yang ditunjukkan dalam rajah, bahagikan jadual pengguna kepada jadual pengguna1 dan Jadual pengguna2 dibahagikan berdasarkan userId dan modulus diambil. Nombor genap diletakkan dalam jadual pengguna1, dan nombor ganjil diletakkan dalam jadual pengguna2 Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

    Cara pemisahan mendatar yang lain:

    Julat dibahagikan kepada sekeping data berterusan untuk setiap pangkalan data Ini biasanya berdasarkan julat masa, tetapi ini biasanya kurang digunakan kerana ia mudah menyebabkan titik panas dan sejumlah besar trafik dilanda yang terkini. data. Ke atas, kelebihan: Apabila mengembangkan, ia adalah sangat mudah, kerana anda hanya perlu menyediakan perpustakaan untuk setiap bulan Apabila tiba bulan baru, anda secara semula jadi akan menulis perpustakaan baru. Julat yang digunakan dalam pengeluaran sebenar bergantung pada senario Pengguna anda bukan sahaja mengakses data terkini, tetapi mengakses data semasa dan data sejarah
    • Kelebihan: ia boleh teragih sekata Kelemahan memperuntukkan volum data dan tekanan permintaan setiap perpustakaan: lebih menyusahkan untuk mengembangkan kapasiti, dan akan ada proses pemindahan data
    • (3 ) Ciri belahan mendatar

    Struktur setiap perpustakaan (jadual) adalah sama
    • Data setiap perpustakaan (jadual) adalah berbeza
    • Kesatuan setiap pangkalan data (jadual) ialah jumlah penuh data
    • (4) Kelebihan dan keburukan split horizontal

    Kelebihan:

    Data satu pangkalan data/jadual tunggal dikekalkan pada jumlah tertentu (dikurangkan), yang membantu meningkatkan prestasi
    • Meningkatkan kestabilan sistem dan kapasiti beban
    • Jadual belah mempunyai struktur yang sama dan memerlukan kurang pengubahsuaian atur cara.

    Kelemahan:

    • Peluasan data sangat sukar dan memerlukan banyak penyelenggaraan

    • Sukar untuk abstrak peraturan pemisahan

    • masalah konsistensi transaksi sharded. 🎜>

    4. Masalah yang disebabkan oleh sub-pangkalan data dan sub-jadual

    • Transaksi teragih

    • Cross -permintaan penyertaan pangkalan data

    • ID unik global yang diedarkan

    • Kos pembangunan adalah tinggi untuk pengaturcara

    5. Sub-perpustakaan dan sub-jadual Bagaimana untuk memilih teknologi

    (1) Rangka kerja sumber terbuka untuk pemecahan pangkalan data dan jadual

    • lapisan sambungan terus jdbc: shardingsphere , tddl

    • lapisan proksi proksi: mycat, mysql-proxy (360)

    Lapisan sambungan terus jdbc

    Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?

    Lapisan sambungan langsung jdbc juga dipanggil lapisan aplikasi jdbc kerana semua peraturan sharding, semuanya logik sharding, termasuk semua isu ini dalam memproses transaksi yang diedarkan Semuanya dalam lapisan aplikasi Semua projek terdiri daripada pakej perang Semua serpihan ditulis sebagai pakej jar dan diletakkan dalam pakej perang. Apabila mesin maya berjalan, pakej perang akan menjadi Fail bait di dalamnya dimuatkan ke dalam memori jvm oleh classLoder Semua logik sharding dikendalikan berdasarkan bahagian memori

    (2) lapisan proksi

    Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?Seperti yang ditunjukkan dalam gambar, lapisan proksi, semua peraturan sharding, semua logik sharding, termasuk memproses transaksi teragih, semuanya ditulis dalam mycat, dan semua logik sharding adalah dikendalikan berdasarkan mycat

    (3) Kelebihan dan keburukan lapisan sambungan langsung jdbc dan lapisan proksi

      lapisan sambungan terus jdbc mempunyai prestasi tinggi, hanya menyokong bahasa java dan menyokong pangkalan data silang
    • Lapisan proksi mempunyai kos pembangunan yang rendah, menyokong bahasa silang, tetapi tidak menyokong pangkalan data silang

    Atas ialah kandungan terperinci Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam