Оптимизация mysql: текущий и предыдущий ордера должны быть на разных столах или на одной и той же таблице со столбцом флага? - PullRequest
1 голос
/ 18 ноября 2010

Я хочу знать, как оптимизировать работу с MySQL.

У меня довольно большая база данных для заказов.У меня есть другая таблица для предыдущих заказов, когда заказ завершается, он стирается из заказов и перемещается в предыдущие заказы.

Если я продолжу использовать этот метод или поместу их в одну таблицу и добавлю столбецфлаг, если это текущие или предыдущие заказы?

kfir

1 Ответ

2 голосов
/ 18 ноября 2010

Как правило, перемещение данных по таблицам является чувствительным процессом - данные могут легко потеряться или испортиться. Вопрос в том, как вы запрашиваете эту таблицу - если вы часто просматриваете и фильтруете ее, вы хотите, чтобы таблица была относительно небольшой. Если вы обращаетесь к нему только для чтения определенных строк (используя прямой первичный ключ), размер таблицы не так важен, и тогда я бы посоветовал оставить флаг. Третий вариант, который вы можете рассмотреть, это наличие 3 таблиц - одна для текущих заказов, одна для исторических заказов и одна с деталями заказа. Эта третья таблица может быть длинной и статичной, пока вы запрашиваете первые две таблицы.

Наконец, в какой-то момент вы можете захотеть удалить исторические данные из таблицы все вместе. Возможно, вы бы сохранили задание cron, которое запускается раз в месяц и перемещает данные старше 6 месяцев в другую удаленную базу данных.

...