Когда необходимо партиционирование и шардирование?
Мучает вопрос, по которому пока не нашел ответа: где граница того, что необходимо партиционирование и шардирование?
Допустим есть таблица Tickets, в котором около 12 полей
- 5 текстовых и 7 числовых. При достижении какого количества записей, необходимо горизонтальное масштабирование? Или при каком количестве записей, поиск будет проседать: 1 млн, 10 млн, 100 млн?
Эта граница у каждого случая своя и обычно она болтается где-то в районе момента, когда размер таблицы приводит к прикладным негативным последствиям для бизнеса.
В зависимости от нюансов конкретного проекта подходящий момент для масштабирования может наступить и на 10 миллионах записей. А может и вообще не наступить - а значит, страдания по этому поводу будут являться ярким примером преждевременной оптимизации (и таких случаев - большинство).
В грамотно спроектированной базе, к которой выполняются грамотно составленные запросы - момент приближения к "границе" не будет внезапным и заблаговременно будет отловлен DBA с помощью мониторинга.