2012-01-27 4 views
0

저는 6000 명의 사용자 집합과 제품에 대해 제공 한 10000 개의 다른 집합을 포함하는 두 개의 MySql 테이블이 있습니다. 특정 제품 (또는 등급 값)에 등급을 부여한 사용자 1 또는 0을 나타내는 각 행에 대한 특성 벡터 행렬을 만들고 싶습니다. 이것을 달성하는 최선의 방법은 무엇입니까? (행렬이 희박 해지니까?)mySQL 테이블의 초대형 행렬 생성?

MySQL (Matlab)과 같은 도구로 어떤 도구를 사용하여 테스트 할 수 있는지 궁금합니다. 최종 사용자는 유사한 사용자의 클러스터링을 수행하는 것입니다. 어떻게 든 나는 10,000 컬럼의 MySQL 테이블이 내 DB 관리자를 행복하게 만들지 않을 것이라고 생각한다.

감사합니다.

답변

0

SQL에서 희소 행렬을 저장하는 확실한 방법 userproduct과 함께 기본 키 세 개의 열을 사용하며, 추가 컬럼은 평가된다.

SQL 데이터베이스를 사용하여 실제 처리하는 것은 의미가 없습니다. 이것은 엄청난 오버 헤드 일 뿐이며, 작업을 느리게 만듭니다. 데이터를 원시적이고 빠른 데이터 구조로 변환 한 다음 분석을 수행 한 다음 필요한 출력 형식으로 결과를 변환하십시오.

SQL은 데이터의 일부만 필요하거나 변경을 수행해야 할 때 잠금이 필요하고이 모든 것이 좋습니다. 하지만 데이터베이스에 저수준 선형 대수 라이브러리를로드 할 수 없으면 느려질 수 있기 때문에 데이터베이스에서 직접 계산을 실행하지 않습니다.