Перейти к содержимому

Партиционирование против шардинга: самая запутанная тема наконец-то стала понятной

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 Итоги ДЛЯ КОГО ЭТО Для разработчиков, чья база данных начинает работать медленно и которые постоянно слышат «просто шардируйте ее», для бэкенд-инженеров, выбирающих между секционированием, шардингом или ни тем, ни другим, и для всех, кто готовится к собеседованию по проектированию систем, где речь заходит о масштабировании базы данных. #базаданных #шардинг #секционирование #проектированиесистем #бэкенд #масштабируемость