매월 대략 1500 개의 속성이 포함 된 보고서가 약 500 만 개의 속성 보고서를 처리합니다. 범위는 smallint
에서 Varchar(1000)
까지입니다.속성/값 테이블에 대한 DB 효율성 향상
이러한 신용 보고서 속성은 신용 공급자마다 다릅니다. 내가 더 잘 그 아래의 스키마를 개선하는 방법에 대한 조언을 찾고 있어요
는 신용 데이터를 캡처 :
credit_reports
- id (int, PK)
- credit_report_provider_id (int, FK)
credit_report_attributes
- id (int, PK)
- credit_report_id (int)
- attribute (varchar(10))
- value (varchar(1000))
credit_report_providers
- id (int, PK)
- name (varchar(15))
내 최고 관심사는 credit_report_attributes
테이블에 Entity-Value-Attributes 디자인의 사용이다.
여러 개의 특성이 tinyints
이지만이 테이블은 모든 특성 및 값 형식/길이를 지원할만큼 충분히 포괄적이어야하므로이 테이블이 빠르게 커질수록 성능 문제가 발생할 것으로 우려됩니다.
다양한 신용 보고서 제공 업체의 신용 보고서 속성을보다 효율적으로 파악할 수있는 대체 방법이 있습니까?
당신은 속성과 값에 대해 할 쿼리의 종류? –
'credit_reports' 테이블에있는'hstore' 열은 EAV에 대한 매우 효율적인 대안입니다. –
이것을 고려했지만 엄격하게 적용된 스키마가 부족하다는 것에 우려했습니다. 예를 들어, 제공자 X의 모든 credit_reports에 대해 소급 분석을 수행하려는 경우 모든 신용 보고서에 동일한 속성 및 값 집합이 있는지에 대한 확신이 없습니다. (응용 프로그램/코드 측에서 시행하지 않는 한) – doremi