Чим партиціонування відрізняється від шардування?
Партиціонування і шардування схожі за ідеєю - в обох випадках великі дані діляться на частини. Але ключова відмінність у тому, де й навіщо ці частини зберігаються.
Партиціонування
- Місце: усі партиції розташовані на одному сервері (у межах однієї бази даних).
- Мета: підвищити продуктивність і керованість усередині однієї системи.
- Керування: виконується засобами самої СУБД (наприклад, PostgreSQL уміє партиціонувати таблиці нативно).
- Типові сценарії: прискорення запитів, очищення старих даних, оптимізація зберігання великих таблиць.
Приклад: таблиця замовлень ділиться за місяцями - січень, лютий, березень - усе зберігається на одному сервері.
Шардування
- Місце: кожен шард зберігається на окремому сервері чи кластері.
- Мета: горизонтальне масштабування всієї системи й розподіл навантаження.
- Керування: потребує зовнішньої логіки - маршрутизації запитів, синхронізації, реплікації.
- Типові сценарії: великі вебсервіси, мільйони користувачів, терабайти даних.
Приклад: користувачі з ID 1-1 000 000 на одному сервері, решта - на іншому.
Коротко:
- Партиціонування = ділимо таблицю всередині одного сервера.
- Шардування = ділимо базу по різних серверах.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.