저는 쿼리가 너무 커서 (500m + 행) 매우 큰 MySQL 테이블이 있습니다. 내가 한 것은 "최근"이라는 다른 테이블에서 필요한 결과를 캐시하는 것입니다. 은 "최근"테이블에서고유 인덱스를 사용하여 MySQL의 열 당 행의 수를 제한합니다.
스키마는 난 단지 원하는대로 내가 USER_ID와 DISPLAY_ORDER에 고유 인덱스를 넣었습니다
DISPLAY_ORDER이
USER_ID
PAGE_ID처럼 보인다 이 테이블에는 사용자 당 최대 64 개의 레코드를 저장할 수 있습니다. 따라서 DISPLAY_ORDER는 64까지 올라가는 int입니다. 행은 REPLACE INTO를 사용하여 업데이트됩니다.
좋은 접근 방법입니까? 아니면 사용자가 64 행을 초과하면 테이블에서 데이터를 정기적으로 삭제해야합니다. 나는 성과를 고려할 필요가있다. 다음 5 개월 동안 5 억에 달하는 마스터 테이블은 사용자 당 64 줄로 늘어나 "최근"테이블도 상당히 커질 것입니다.
감사합니다.
[partitioning] (http://dev.mysql.com/doc/en/partitioning.html) 기본 테이블을 고려해 볼 수 있습니다. – eggyal