2014-07-01 2 views
0

정보를 보유하고있는 두 개의 테이블과 투자자 중 하나가 특정 속성에 관심이있는 투자자를 저장하려고합니다.많은 양의 소량 또는 많은 양의 데이터를 저장하는 최상의 방법을 저장하는 mysql 데이터베이스

이 정보를 저장하기 위해 세 번째 연결 테이블을 만들었지 만, 하나의 투자자 ID와 많은 속성 ID를 한 행 (또는 투자자 ID의 속성 ID 하나)에 저장해야하거나 모범 사례인지 확실하지 않습니다. 내가 개별적으로해야합니까?

내 개인적인 문제는 행 수가 2 개월 내에 수만 명에 쉽게 도달 할 수 있지만 하나의 열에서 많은 수의 것이 너무 많다는 것입니다.

가장 좋은 방법은 무엇입니까? 소량의 대용량 데이터 또는 대량의 소량 데이터?

(또한 가치가 내가 밖으로 질문보고 그렇게을 삭제에 대한 데이터를 유지할 필요가 있다고 언급.)

+3

가장 좋은 방법은 [표준화] (http://en.wikipedia.org/wiki/Database_normalization) –

+1

예 @MarkBaker가 [정규화] (http://ftp.nchu.edu.tw/MySQL/tech -resources/articles/intro-to-normalization.html) – Rorschach

+0

그것이 입증되지 않는 한 어떤 것이 문제가 될 것이라고 생각하지 마십시오. "수만"은 사람에게 많은 수는 있지만 컴퓨터는 CPU보다 트랜지스터가 더 많습니다. 그것은 당신의 조심성있는 수의 열에서 웃음을 짓습니다 ... :) – deceze

답변

2

은 "가장 좋은 방법은"normalize에 데이터가 될 것입니다이 경우 소리에있는 많은 양의 작은 데이터를 가지고있는 것과 같습니다. 두 레코드를 기본 키로 가정하면이 조회는 수만 행에 대해서도 상대적으로 빠릅니다.

또한 일반적으로 SQL에서 데이터에 문제가 발생하지 않을 때까지 수백만을 치고 제대로 인덱싱되지 않은 작은 테이블에 대해서는 문제를 예측하지 않습니다.

+0

감사합니다, 우리는 사무실에서 동의하는 데 어려움을 겪었습니다. 주어진 기사와 앞으로 연결됩니다. – Sjrsmile

+1

SQL 엔지니어가없는 하루가 끝나면 실제로 SQL을 테스트하는 유일한 방법은 벤치마킹입니다. 가짜 데이터를 생성하고 시간을 내십시오! 행운을 빕니다! – Cheruvian

1

데이터를 정규화하면 연결 테이블에 하나의 투자자 ID와 하나의 속성 ID 만 저장해야합니다.

일반적으로 수십만 개의 레코드가 MySQL 테이블이 보관할 수있는 많은 수로 간주되지 않습니다. 액세스 속도를 높이려면 올바르게 색인을 생성해야합니다.

관련 문제