Какие знаешь способы шардирования БД

Python Junior Без компании
Какие знаешь способы шардирования БД
Ответы
Шардирование (горизонтальное партиционирование) делит данные по строкам между разными серверами. Основные подходы: - **Хэш-шардирование** Данные распределяются по шардам с помощью хэш-функции от ключа (например, `user_id % N`). ``` def get_shard(user_id, total_shards): return user_id % total_shards ``` - **Диапазонное шардирование** Данные делятся по диапазонам (например, пользователи A-M на шард1, N-Z на шард2). - **Географическое шардирование** Распределение по локациям (европейские пользователи → шард1, азиатские → шард2). - **Шардирование по словарю** Явное сопоставление ключей с шардами через lookup-таблицу. **Проблемы:** - Горячие шарды (неравномерная нагрузка). - Сложные JOIN-запросы между шардами. - Транзакции, затрагивающие несколько шардов. **Примеры СУБД с поддержкой шардирования:** PostgreSQL (c расширениями), MongoDB, Cassandra.