2017-01-13 3 views
0

Я хотел бы разбить мою текущую ОГРОМНУЮ таблицу на несколько таблиц. Новые таблицы должны быть разделены в соответствии с их записью в определенном поле.Как разбить таблицу на несколько таблиц

E.g. если поле «Пол» с каждой записью, выбранной как мужчина и женщина, id, как два стола, один для мужчин другой женщины.

Old table: 
Gender First Name  Last Name 
Male  John   Smith 
Female Sally   Smith 


New tables: 
Name: Male 
Gender First Name  Last Name 
Male  John   Smith 

Name: Female 
Gender First Name  Last Name 
Female Sally   Smith 

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

+2

Таблицы разделения, как правило, очень плохая идея. –

+1

Кажется, очень плохая идея. Держите его как единый стол! – jarlh

+0

Согласен с приведенными выше комментариями. Если вы столкнулись с проблемами скорости, вам может понадобиться изучить индексацию. – GibralterTop

ответ

0

Первый запрос:

Insert into Table2 select * from Table1 where gender = 'female' 

Второй запрос:

Delete from Table1 where gender = 'female' 

Во всяком случае, я хотел бы сделать некоторые исследования, чтобы понять, если таблица расщепление действительно необходимо для вашего случая, или если он просто увеличить БД сложность структуры (и относительного кода)

-1

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

+1

Вопрос помечен как MySQL. – jarlh

Смежные вопросы