2017-01-13 1 views
0

현재 HUGE 테이블을 여러 테이블로 분할하고 싶습니다. 새 테이블은 특정 필드의 항목에 따라 분할되어야합니다.테이블을 여러 테이블로 분할하는 방법

예. 필드가 남성과 여성으로 선택된 각 레코드의 성별 인 경우 이드는 남성의 경우 두 테이블과 같은 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 

필드는 city입니다. 각 도시를 코드 내에서 따로 이름을 지정하는 대신 모든 도시와 마찬가지로이 ID를 선택하여 개별 테이블로 그룹화하십시오. 어떤 도움이라도 대단히 감사 할 것입니다.

+2

분할 테이블은 일반적으로 매우 나쁜 생각입니다. –

+1

아주 나쁜 생각 같습니다. 하나, 하나의 테이블로 유지하십시오! – jarlh

+0

위의 의견에 동의합니다. 속도 문제를 겪고 있다면 인덱싱을 조사하는 것이 좋습니다. – GibralterTop

답변

0

첫 번째 쿼리 :

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

두 번째 쿼리 : 그것은 단지 DB 증가 어쨌든

Delete from Table1 where gender = 'female' 

, 나는 테이블 분할이 정말 귀하의 경우에 필요하면 이해하기 위해 몇 가지 연구를, 또는 것 구조 (및 상대 코드) 복잡성

-1

당신이 원하는 것은 파티션을 사용하여 달성 할 수 있습니다. MySQL을 사용하고 있으므로 지정된 값에 따라 테이블을 분할하므로 특히 목록 분할을 체크 아웃해야합니다. 동일한 쿼리를 계속 사용할 수 있지만 데이터베이스는 자동으로 기본 올바른 파티션을 사용합니다.

+1

질문에 MySQL 태그가 붙어 있습니다. – jarlh

관련 문제