2010-01-11 4 views
0

저는 하나의 부동산 웹 사이트에서 일하고 있으며 테이블에는 약 250 개의 필드가 있고 테이블에는 15 개의 lakhs (150 만개) 레코드가 있습니다. 웹 사이트에서 검색 기능을 제공하고 싶습니다. DB를 설계하여 이러한 15 가지의 lakhs 레코드에서 빠르게 속성을 검색 할 수 있어야합니다. http://www.redfin.com/과 같은 사이트를 만들고 싶습니다.큰 데이터베이스를 처리하는 방법은 무엇입니까?

15 개의 모든 lakhs 레코드가 검색을 위해 하나의 테이블에 있어야합니다.

DB를 어떻게 디자인해야합니까? 나는 PHP + MySQL을 사용하고 있으므로이 유형의 대형 데이터베이스 처리에 선호되는 스토리지 엔진 (MyISAM, InnoDB 등)을 묻고 싶습니다.

제발 도와주세요.

+3

"15lacks"는 무엇을 의미합니까? 나는 전에 그것을 본 적이 없다. – duffymo

+1

무엇? 250 열이있는 테이블? 왜? –

+2

@duffymo : 부족한 인디아 IIRC는 – Jamiec

답변

2

데이터베이스가 하나의 테이블로 구성되어 있다고 하시겠습니까? 그것이 하나의 테이블에있는 250 개의 필드가 나에게 제안하는 것입니다. 그렇다면 스키마 전문가에게 약간의 노멀 라이즈를주기 위해 디자인 전문가와 상담하는 것이 좋습니다.

성능면에서 MySQL InnoDB는 적절한 키와 인덱스를 설계하는 한 충분해야합니다. 트릭은 필요한 질의를 알고 가능한 한 효율적으로 만들기 위해 색인을 만드는 것입니다.

테이블에 250 개의 열이 포함될 수 있지만 대부분의 경우 열의 조합이 일반적인 쿼리에 적용될 것입니다. 이러한 조합은 색인을 생성해야합니다.

1,500 만 개의 행은 엄청난 숫자가 아닙니다. 당신은 많은 양의 반복 된 데이터를 가지지 않기 때문에 정규화가 그 수를 상당히 줄일 것이라는 것을 알 수 있습니다. 대용량 데이터베이스는 테라 바이트 단위로 측정됩니다.

+0

예 sir.that 250 개의 필드가있는 표와 그 필드를 검색하고 싶습니다. – Jimit

+0

검색 할 필드에 인덱스 또는 클러스터 된 인덱스 설정 –

0

정규화 (Google을 읽은 다음 필요에 따라 다시 읽고 다시 열어야 함)를 고려해야한다고 생각합니다.

레코드 수는 성능에 영향을주기 위해 매우 커야하며, 매우 큰 레코드는 사용중인 RDBMS에 따라 달라집니다. 예 : 오라클을위한 미드 레인지 인 Access는 거대한 1500 만 달러입니다. 그러나 데이터 구조는 모든 RDBMS에서 중요합니다. 따라서 정규화가 핵심입니다.

관련 문제