Короткий ответ Шардирование по ключу (hash) даёт равномерное распределение нагрузки записи, но делает диапазонные запросы и перебалансировку сложнее; шардирование по диапазону (range) упрощает диапазонные запросы и добавление новых шардов, но рискует создавать «горячие» шарды при неравномерном распределении ключей; в обоих случаях транзакции и JOIN между шардами перестают быть атомарными и эффективными на уровне одной СУБД. Как это работает подробнее При шардировании данные одной логической таблицы физически распределяются по нескольким независимым базам на основе ключа шардирования; обычная транзакция и JOIN работают только внутри одного шарда — операции между шардами требуют распределённой транзакции или перепроектирования логики так, чтобы связанные данные оказывались в одном шарде (co-location). Сравнение Компромисс. Решение зависит от того, какие запросы доминируют (точечные по ключу или диапазонные/аналитические), темпа роста и приемлемости сложности перебалансировки; hash-шардирование проще держать рав
Загрузка…