Как разделить большую таблицу на несколько меньших таблиц, используя инструмент командной строки mysql? - PullRequest
0 голосов
/ 17 января 2011

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

Ответы [ 2 ]

0 голосов
/ 17 января 2011

определить максимальный диапазон, скажем, 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

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

0 голосов
/ 17 января 2011

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

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

Кстати:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...