내가이 네 개의 테이블을 가지고 말 :MySQL은 - 매김 여러 열을 주문하는 방법을 효율적으로
BRANCH (BRANCH_ID, CITY_ID, OWNER_ID, SPECIALTY_ID, INAUGURATION_DATE)
CITY (CITY_ID, NAME)
OWNER (ONWER_ID, NAME)
SPECIALTY (SPECIALTY_ID, NAME)
내가 50 (LIMIT X, 50
)의 페이지 매김을 사용하여 모든 지점이 표시됩니다 어디 PrimeFaces가 DataTable을 가지고있다. 오늘 BRANCH
에는 10000 개의 행이 있습니다. 나는 그들의 이름을 보여주고 싶기 때문에 BRANCH
을 다른 3 개의 테이블과 결합시킬 것이다.
나는 다음과 같은 기본 종류로 결과를 가져하려는 : 이제
ORDER BY INAUGURATION_DATE ASC, C.NAME ASC, O.NAME ASC, S.NAME ASC
, 사용자는 내 데이터 테이블에서이 컬럼의 헤더를 클릭하도록 선택할 수 있습니다, 그리고 나는를 쿼리합니다 데이터베이스에서 우선 순위를 물어 보았다. 그는 내림차순, 전문 이름으로 처음 주문 선택한 경우 예를 들어, 내가 할 수있는 것들 :
이제ORDER BY S.NAME DESC, INAUGURATION_DATE ASC, C.NAME ASC, O.NAME ASC
내 질문 : 난 항상 4 열을 사용하여이 동적 종류로 데이터베이스를 조회 할 수있는 방법, 효율적으로? 많은 사용자가 동시에 (1000 명의 사용자와 같이) 내 사이트에서이 데이터 테이블을 볼 수 있으므로 ORDER BY
을 SQL에 사용하면 은 매우 느림입니다. Java에서 순서를 수행하고 있지만 올바르게 페이지 매김을 수행 할 수 없습니다. SQL에서 어떻게 효율적으로 만들 수 있습니까? 이 열에 대한 색인을 충분히 만드나요?
감사합니다.