MySQL 데이터베이스에 저장된 매우 큰 데이터 세트에서 심각한 데이터 마이닝을 수행해야합니다. 그러나 기본 이상의 비트를 필요로하는 쿼리는 10e6 이상의 순서로 결과를 반환하기 때문에 (특히 하나 이상의 테이블에서 JOIN
이 도입 될 때) 오히려 비효율적 인 경향이 있습니다. 수십 개의 테이블을 두 개 이상 결합하면 수백만 개의 행 (데이터 필터링 후)이 있습니다. 이는 모든 쿼리에서 거의 발생합니다. 우리는 종종 이것들 (sum
, avg
, count
등)에 대해 집계 함수를 실행하고 싶지만, MySQL은 단순히 질식하기 때문에 불가능합니다.매우 큰 데이터 세트를위한 RDBMS - 사람들은 무엇을 사용하고 있습니까?
모든 테이블의 색인이 제대로 생성되고 쿼리가 조정되고 하드웨어가 최고 수준이며 스토리지 엔진이 구성되는 등 많은 노력을 기울여야 현재 성능을 최적화 할 수 있습니다. 그러나 각 쿼리는 여전히 매우 오래 걸립니다. "우리가 집에 돌아가고 내일 일할 때 최선을 기원하기 전에 실행하십시오." 안좋다.
이것은 해결할 수있는 문제입니다. 많은 대기업은 매우 데이터 및 계산 집약적 인 마이닝을 수행하고 잘 처리합니다 (자체 스토리지 엔진, Google 작성하지 않고). 나는 일을 끝내기 위해 시간 벌칙을 기꺼이 받아 들일 것이지만 며칠이 아닌 몇 시간 만에 받아 들일 것입니다. 제 질문은 - 사람들이 이런 문제에 대처하기 위해 무엇을 사용합니까? 나는 이런 종류의 문제 (greenplum 등)에 맞춰진 스토리지 엔진에 대해 들어 봤지만,이 문제가 일반적으로 어떻게 접근하고 있는지 듣고 싶었다. 우리의 현재 데이터 저장소는 분명히 관계형이며 아마도 그렇게 남아 있어야하지만 생각이나 제안은 환영합니다. 감사.
mysql은 파티션이없는 클러스터 된 인덱스를 활용하여 최적화 된 innodb 스키마를 사용하여 매우 큰 테이블 인 1billion + rows, 복잡한 조인을 사용하여 저온 (<0.2 초 런타임 감기)에 적합합니다. 나는 당신이 mysql 스키마를 가지고 그렇게 나쁘게 수행하게 만들었던 문제가 무엇인지 궁금하다. 어쩌면 이것의 빠른 읽기 올바른 방향으로 당신을 가리킨 수도 http://stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one-on-a/4421601#4421601 –