Sharding hanyalah nama lain untuk "partisi horisontal" dari suatu basis data. Anda mungkin ingin mencari istilah itu untuk membuatnya lebih jelas.
Dari Wikipedia :
Partisi horisontal adalah prinsip desain di mana baris tabel database diadakan secara terpisah, bukan dipecah oleh kolom (seperti untuk normalisasi). Setiap partisi membentuk bagian dari beling, yang pada gilirannya terletak di server database atau lokasi fisik yang terpisah. Keuntungannya adalah jumlah baris di setiap tabel berkurang (ini mengurangi ukuran indeks, sehingga meningkatkan kinerja pencarian). Jika pecahan didasarkan pada beberapa aspek dunia nyata dari data (misalnya pelanggan Eropa vs pelanggan Amerika) maka dimungkinkan untuk menyimpulkan keanggotaan beling yang sesuai dengan mudah dan otomatis, dan hanya meminta beling yang relevan.
Beberapa informasi lebih lanjut tentang sharding:
Pertama, setiap server database identik, memiliki struktur tabel yang sama. Kedua, catatan data secara logis dibagi menjadi database yang terbelenggu. Tidak seperti database yang dipartisi, setiap catatan data lengkap hanya ada dalam satu shard (kecuali ada mirroring untuk cadangan / redundansi) dengan semua operasi CRUD dilakukan hanya dalam database itu. Anda mungkin tidak menyukai terminologi yang digunakan, tetapi ini mewakili cara yang berbeda dalam mengatur basis data logis menjadi bagian-bagian yang lebih kecil.
Pembaruan: Anda tidak akan merusak MVC. Pekerjaan menentukan shard yang benar tempat menyimpan data akan dilakukan secara transparan oleh lapisan akses data Anda. Di sana Anda harus menentukan shard yang benar berdasarkan kriteria yang Anda gunakan untuk shard database Anda. (Karena Anda harus secara manual membuang database ke beberapa pecahan yang berbeda berdasarkan beberapa aspek konkret dari aplikasi Anda.) Kemudian Anda harus berhati-hati ketika memuat dan menyimpan data dari / ke dalam database untuk menggunakan pecahan yang benar.
Mungkin contoh ini dengan kode Java membuatnya lebih jelas (ini tentang proyek Hibernate Shards ), bagaimana ini akan bekerja dalam skenario dunia nyata.
Untuk mengatasi " why sharding
": Ini terutama hanya untuk aplikasi skala sangat besar, dengan banyak data. Pertama, ini membantu meminimalkan waktu respons untuk permintaan basis data. Kedua, Anda dapat menggunakan mesin "lower-end" yang lebih murah untuk meng-host data Anda, alih-alih satu server besar, yang mungkin tidak cukup lagi.