Партиционирование против шардинга: самая запутанная тема наконец-то стала понятной
Cloud X Berry
0:00 / 0:00
Партиционирование против шардинга: самая запутанная тема наконец-то стала понятной
22 098 просмотров · 5 дн. назад
Cloud X Berry
86,3 тыс. подписчиков
22 098 просмотров · 5 дн. назад
В этом видео Cloud X Berry простым и понятным для начинающих способом объясняет разницу между секционированием и шардингом.
Ваша база данных постоянно растёт. Запросам нужно обрабатывать всё больше данных, индексы увеличиваются, объём хранилища постоянно увеличивается, и в конечном итоге сама база данных становится узким местом. В этот момент всегда появляются два решения: секционирование и шардинг. Оба разделяют ваши данные на
более мелкие части, поэтому звучат как одно и то же. Но это не так. Секционирование разделяет данные внутри базы данных. Шардинг распределяет данные по нескольким базам данных. Это одно слово меняет принцип работы вашего приложения, обработку запросов и масштабируемость вашей системы.
Начнём с секционирования: одна большая таблица заказов, разделённая по месяцам на разделы, которыми по-прежнему управляет одна и та же база данных, в то время как ваше приложение продолжает видеть одну логическую таблицу. Вы увидите, как обрезка разделов позволяет запросу «последние семь дней» пропускать все старые разделы, и как старый раздел можно заархивировать или удалить, не затрагивая остальную часть таблицы.
Далее переходим к шардингу: клиенты разделены на группы, каждая группа работает в собственном экземпляре базы данных, а ключ шардинга, например, идентификатор клиента, определяет, куда будет помещена каждая запись. Затем следует часть, которую большинство объяснений пропускают: сколько на самом деле стоит шардинг. Кто направляет каждый запрос в нужный шард, как некачественный ключ создает «горячий» шард, где один сервер выполняет всю работу, в то время как другие простаивают, почему запросы к 10 шардам и транзакции, затрагивающие несколько шардов, становятся намного сложнее, и почему шардинг редко является первым, к чему вы прибегаете. В заключение мы рассмотрим использование обоих методов вместе, с шардами, содержащими секционированные таблицы, и дадим прямой ответ на вопрос, который задают все: означают ли сотни миллионов строк необходимость шардинга? Не обязательно. Сначала найдите узкое место.
ГЛАВЫ
0:16 Секционирование и шардинг: одно и то же?
0:46 Что такое секционирование базы данных
1:59 Что такое шардинг
2:24 Ключевое различие
4:04 Запросы и транзакции между шардами
5:42 Сотни миллионов строк — нужен ли вам шардинг?
6:04 Сначала найдите реальную проблему
6:23 Итоги
ДЛЯ КОГО ЭТО
Для разработчиков, чья база данных начинает работать медленно и которые постоянно слышат «просто шардируйте ее», для бэкенд-инженеров, выбирающих между секционированием, шардингом или ни тем, ни другим, и для всех, кто готовится к собеседованию по проектированию систем, где речь заходит о масштабировании базы данных.
#базаданных #шардинг #секционирование #проектированиесистем #бэкенд #масштабируемость