Вопрос говорит сам за себя.
Пример: я планирую огородить таблицу базы данных. Таблица содержит заказы клиентов, которые помечены как «активные», «выполненные» и «удаленные». У меня также есть три осколка, по одному на каждый флаг.
Насколько я понимаю, строка должна быть перемещена в правый осколок, когда флаг поменялся.
Я прав?
Какой лучший способ сделать это?
Можно ли использовать триггеры?
Я думал о том, чтобы не перемещать строку сразу, а только в конце дня / недели / месяца, но потом не было определено, в каком месте находится фрагмент с определенным флагом, и поиск должен выполняться всегда все осколки.
РЕДАКТИРОВАТЬ: Некоторые уточнения:
В общем, я должен выбрать критерий, чтобы решить, в каком фрагменте находится ряд. В этом случае я хочу, чтобы это был флаг, описанный выше, потому что это самый естественный способ для разделения данных такого типа. (На мой взгляд) Существует только ограниченное количество активных заказов, к которым обращаются очень часто. Существует большое количество готовых заказов, к которым редко обращаются, и очень большое количество строк данных, к которым почти никогда не обращаются.
Если я хочу сейчас, где находится конкретная строка данных, мне не нужно искать все шарды. Если пользователь хочет загрузить активный ордер, я уже знаю, в какой базе данных мне нужно искать.
Теперь флаг, который является моим критерием шардинга, меняется, и я хочу знать, как лучше всего справиться с этим делом. Если бы я просто сохранил запись в исходной базе данных, в конечном итоге все данные накапливались бы в одной таблице.