Как разделить большую таблицу на несколько меньших таблиц, используя инструмент командной строки mysql?

0

У меня есть таблица mysql, которую я хочу разбить на меньшие таблицы. Я хочу разбить данные в диапазонах 1 - 199 и 200 - 299 и поместить их в новые таблицы. Как мне это сделать с помощью инструмента командной строки mysql?

  • 0
    Просто из интереса, почему ты хочешь это сделать?
  • 0
    Таблица представляет собой список номеров профиля, которые совпадают с продуктом. В моем случае 0 - 199 - это профили для обшивки (деревянные), 200 - 299 - это базовые профили и так далее. Поэтому я считаю, что для каждой категории лучше иметь свою таблицу. Вместо того, чтобы загружать всю таблицу каждый раз, когда все, что я хочу, это просто корпус. Твои мысли?
Показать ещё 6 комментариев
Теги:
database

2 ответа

0

Самый простой способ добиться этого - просто использовать mysqldump для экспорта существующей схемы таблиц и данных. (Я бы рекомендовал использовать опцию "- complete-insert".)

Затем вы можете вручную отредактировать полученный файл, добавив соответствующие инструкции создания таблицы и отредактировав строки INSERT, чтобы использовать соответствующее имя таблицы.

Кстати:

  • Хотя это может и не быть актуальным, остерегайтесь добавления данных в исходную таблицу, пока вы выполняете редактирование и т.д.

  • Если все это звучит немного ручным и болезненным, это потому, что это так. Однако здесь у вас есть довольно странное требование.

0

вычислить максимальный диапазон, скажем, 10000

for i in $(seq 0 100 10000) ; do 
   echo "create table Table$i like MyTable" | mysql mydb
   echo "insert into Table$i select * from MyTable where id >=$i and id < $(($i+100))" | mysql mydb
done

Однако не делать этого. Там вряд ли будет какая-либо причина для разбивки данных, это будет только для того, чтобы сделать сложнее запрос, администрирование сложнее, кто бы (который может быть вы) не собирается поддерживать вашу базу данных/приложение, в конечном итоге сойдет с ума.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню