Rumah > Artikel > pangkalan data > Apakah cara untuk sub-pangkalan data dan jadual dalam MySQL?
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.
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
(1) Pemisahan menegak pangkalan data
Mengikut pembahagian perniagaan, seperti yang ditunjukkan dalam rajah, sistem e-dagang dibahagikan kepada perpustakaan pesanan, perpustakaan keahlian dan perpustakaan produk
(2) Pembahagian menegak jadual
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
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
(. 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
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
Struktur setiap perpustakaan (jadual) adalah sama
Kelebihan:
Data satu pangkalan data/jadual tunggal dikekalkan pada jumlah tertentu (dikurangkan), yang membantu meningkatkan prestasi
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. 🎜>
(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
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
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
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!