Sharding - это еще одно название для «горизонтального разбиения» базы данных. Возможно, вы захотите найти этот термин, чтобы получить более четкое представление.
От Wikipedia:
Горизонтальное разделение является принцип конструкции которой строки таблицы базы данных хранятся отдельно, а не расщепление по столбцам (как для нормализации). Каждый раздел является частью осколка, которое, в свою очередь, может быть расположено на отдельном сервере базы данных или в физическом местоположении. Преимуществом является сокращение количества строк в каждой таблице (это уменьшает размер индекса, что повышает эффективность поиска). Если очертание основано на каком-то реальном аспекте данных (например, европейские клиенты и американские клиенты), то может быть возможным легко и автоматически вывести соответствующее членство в shard и запросить только соответствующий осколок.
Некоторые больше информации о шардинге:
Во-первых, каждый сервер базы данных идентичны, имеющие ту же структуру таблицы. Во-вторых, записи данных логически разделены в оштрафованной базе данных. В отличие от многораздельной базы данных каждая полная запись данных существует только в одном осколке (если нет зеркалирования для резервного копирования/избыточности) со всеми операциями CRUD, выполняемыми именно в этой базе данных. Возможно, вам не нравится используемая терминология, но это представляет собой другой способ организации логической базы данных на более мелкие части.
Обновление: Вы не нарушите работу MVC. Работа по определению правильного осколка, где хранить данные, будет прозрачно выполняться с помощью вашего уровня доступа к данным. Там вам нужно будет определить правильный осколок, основанный на критериях, которые вы использовали для обхода вашей базы данных. (Так как вам нужно вручную очертить базу данных на несколько разных осколков, основываясь на некоторых конкретных аспектах вашего приложения.) Затем вам нужно позаботиться о загрузке и сохранении данных из/в базу данных, чтобы использовать правильный осколок.
Возможно, this example с кодом Java делает его несколько яснее (речь идет о проекте Hibernate Shards), как это будет работать в реальном мире.
Чтобы обратиться к «why sharding
»: это в основном только для очень крупных приложений, с лотами данных. Во-первых, это помогает минимизировать время отклика для запросов к базе данных. Во-вторых, вы можете использовать более дешевые «нижние» машины для размещения ваших данных вместо одного большого сервера, чего может быть недостаточно.
Would один из этих вебинаров быть полезным http://vimeo.com/26742356 http://www.slideshare.net/rightscale/rightscale-webinar-scaling? -я ваша база данных в облаке http://vimeo.com/32541189 – 2012-01-31 20:27:42