현재 모바일 응용 프로그램을 개발 중이며 MySQL을 사용 중입니다. 나는 지금 내가 책 (이 테이블은 기록과 함께 100k +가 될 것이다)의 테이블을 가지고있는 상황에 직면 해있다. 이 표에는 NotSelling이라는 열이 있습니다. db의 예 :데이터베이스 정렬 시간 복잡성
Book A 45
Book B 0
Book C 159
Book D 78
.
.
.
Book Z 450
위의 수치는 db의 NotSelling 열에 나타나는 수치입니다. 이 대형 테이블에서 상위 20 권의 책을 추출해야합니다. 이제이 일을 내 솔루션 테이블을 정렬하고 단지 TOP
상위 20 개 레코드를 추출하는 데 사용하는 것입니다.
내가 알고 싶은 것은 테이블을 정렬하는 성능에 관한 것입니다. 테이블을 계속 정렬하여 상위 20 개 결과를 얻으려면 오랜 시간이 걸릴 것입니다. 나는이 문제에 대한 해결책을 제시했다 :
- 색인 NotSelling 문제.
- 쿼리를 캐시합니다 (하지만 무효화 빈도가 높을 경우 문제가 될 수있는 대략적인 무효화에 대해 읽었습니다)
- 테이블을 정렬하여 상위 20 개 레코드를 가져 와서 다른 테이블에 배치 한 다음 주기적으로 테이블을 1 시간마다 업데이트하라.
하지만이 모든 것이이 문제에 대한 더 나은 해결책을 알고 있거나 내가 수행 할 기능의 성능을 최적화하는 방법이나 방법이 있습니까? 참고 나는 초보자이므로 누구나 데이터베이스 성능에 관해 읽을 수있는 올바른 방향으로 나를 지적 할 수 있어야만 정말 감사 할 것입니다.
답장을 보내 주셔서 감사합니다!코딩을 시작하기 전에 모든 것을 명확히해야했습니다. – user481610