저는 MySQL에서 중형 (100,000 개 항목) 테이블을 만들고 있으며 속도를 최적화하려고합니다. 엔트리는 본질적으로 트랜잭션적인 데이터를 포함하고 있으며,이 데이터는 분명히 MySQL에 보관 될 것입니다. 나머지 데이터는 테이블 수명 동안 변경되지 않으며 테이블 형식에도 적합하지 않습니다. 즉, 일부 항목에는 다른 항목이 표시하지 않는 필드가 포함되어 많은 'null'값을 갖게됩니다. 또한이 두 번째 부분의 많은 데이터가 반복됩니다. 즉, 테이블의 항목과 쌍을 이루는 500-1000 개의 고유 한 데이터 집합 만있을 수 있습니다.대용량 데이터 반복을위한 MySQL 데이터베이스 최적화
데이터를 구성하는 세 가지 방법을 고려 중입니다. 1) MySQL의 모든 데이터를 테이블 형식으로 둡니다. 2) 비 고유 데이터를 직렬화하고 단일 MySQL 필드에 해당 데이터를 저장하십시오. 3) 비 고유 데이터를 직렬화하고 MySQL 테이블의 포인터가 참조하는 하드 디스크의 파일에 저장하십시오.
제 질문은 어떤 형식을 권하고 싶고 그 이유는 무엇입니까? 데이터베이스에서 많은 쿼리를 실행할 예정이라면 어느 것이 가장 빠를 것입니까?
데이터의 예는 많은 도움이됩니다. 가장 중요한 질문은 "어떻게 사용 하시겠습니까?"입니다. –
더 간단한 방법은 테이블의 각 항목이 더 큰 유형의 개체의 하위 클래스라는 것입니다. MySQL에서 하위 클래스의 인스턴스에 고유 한 모든 변수를 저장하고 있습니다. 왜냐하면 이러한 변수를 자주 검색하고 업데이트해야하기 때문입니다. 그러나 나는 또한 더 큰 클래스가 소유 한 변수에 대한 읽기 (쓰기가 아닌) 접근이 필요하다. –
예를 들어, 객체 A, B 및 C가 있습니다. 항목 1, 2, 3, 4 및 5는 A, B 및 C의 인스턴스입니다. 1-> A, 2-> A, 3-> B, 4-> B 및 5-> C. A의 모든 인스턴스에 공통되는 데이터를 저장하는 가장 좋은 방법은 무엇입니까? –