2024-06-20 22:04:23 +03:00
---
2024-06-20 22:09:23 +03:00
aliases:
- hash based
2024-06-20 22:04:23 +03:00
tags:
- зрелость/🌱
date:
- - 2024-06-20
zero-link:
2024-06-21 09:51:54 +03:00
- "[[00 Алгоритмы]]"
2024-06-20 22:04:23 +03:00
parents:
- "[[Шардирование в БД]]"
linked:
2024-06-30 11:11:56 +03:00
- "[[Directory Based Sharding]]"
2024-06-20 22:04:23 +03:00
---
![](Pasted%20image%2020240620220323.png)
- Выбирается ключ шардирвоания в таблице
2024-06-20 22:09:23 +03:00
- Ключ преобразуется с помощью хэш функции. F(key) -> shard_id
- По хэшу определяется шард
**Плюсы:**
- Равномерное и алгоритмическое распределение.
**Минусы:**
- Добавление/удаление шарда всегда боль. Так как хэш функция начинает возвращать другие результаты даже для уже имеющихся данных.
Популярные формулы хэширования:
2024-07-14 19:44:48 +03:00
- Если ключ цифровой, то можно просто поделить е г о на количество серверов, получив остаток от деления. Если это строка, то можно взять хэш функцию, которая даст число и уже е г о делить на количество серверов.
- Алгоритм crc32.
2024-06-20 22:09:23 +03:00
- какой-то мур-мур