Шардінг - лише інша назва "горизонтального розділення" бази даних. Ви можете шукати цей термін, щоб зрозуміти його.
З Вікіпедії :
Горизонтальний розподіл - це принцип проектування, згідно з яким рядки таблиці бази даних утримуються окремо, а не розбиваються на стовпці (як для нормалізації). Кожен розділ є частиною фрагменту, який, в свою чергу, може бути розташований на окремому сервері баз даних або фізичному місці. Перевага полягає в тому, що кількість рядків у кожній таблиці зменшується (це зменшує розмір індексу, тим самим покращує ефективність пошуку). Якщо штрихування базується на деякому реальному аспекті даних (наприклад, європейські замовники проти американських замовників), можливо, можна легко та автоматично зробити відповідне членство в осколках та запросити лише запит на відповідний фрагмент.
Ще кілька відомостей про заточування:
По-перше, кожен сервер бази даних ідентичний, має однакову структуру таблиці. По-друге, записи даних логічно розбиваються в заточеній базі даних. На відміну від розділеної бази даних, кожен повний запис даних існує лише в одному фрагменті (якщо тільки немає дзеркального відображення для резервного копіювання / надмірності) з усіма операціями CRUD, що виконуються саме в цій базі даних. Можливо, вам не сподобається використовувана термінологія, але це дійсно представляє інший спосіб організації логічної бази даних на менші частини.
Оновлення: Ви не будете ламати MVC. Робота з визначення правильного фрагмента, де зберігати дані, буде прозоро виконана вашим рівнем доступу до даних. Там вам доведеться визначити правильний фрагмент виходячи з критеріїв, якими ви користувались для розподілення бази даних. (Оскільки вам доведеться вручну розподілити базу даних на окремі фрагменти на основі конкретних аспектів вашої програми.) Тоді вам потрібно подбати про завантаження та зберігання даних з / у базу даних, щоб використовувати правильний фрагмент.
Можливо, цей приклад з кодом Java робить дещо зрозумілішим (мова йде про проект Hibernate Shards ), як це діяло б у реальному світі.
Щоб вирішити " why sharding
": це в основному лише для дуже масштабних додатків з великою кількістю даних. По-перше, це допомагає мінімізувати час відповідей на запити бази даних. По-друге, ви можете використовувати більш дешеві машини "нижчого класу" для розміщення ваших даних замість одного великого сервера, якого більше не вистачить.