2012-06-07 4 views
0

제품, 하위 카테고리 및 카테고리가 있습니다. 카테고리에는 많은 Sub_Categories, Sub_Categories belongs_to Categories가 있으며 많은 제품을 보유하고 있으며 제품은 sub_categories에 속합니다. 내 제품 표에 sub_category_id가 있습니다. 내 sub_category 테이블에 category_id가 있습니다. 앱로드 시간을 늘리기 위해이 표를 색인화하는 가장 효율적인 방법은 무엇입니까?Rails 앱을 사용한 데이터베이스 인덱싱

categories on id 
subcategories on id 
subcategories on category_id 
product on id 
product on sub_category_id 
+0

"앱로드 시간을 늘리기 위해이 테이블을 인덱싱하는 가장 효율적인 방법은 무엇입니까?" 나는 당신이 "감소"를 의미한다고 생각합니다. – RecursivelyIronic

+0

중요한 쿼리가이 문제에 대해 해고되는 것을 알고 있습니까? 인덱스 w.r.t를 적용하기 전과 후에 쿼리 응답 시간을 확인하는 것이 좋습니다. 주요 검색어, 당신이 적용한 색인을 만드는 것이 가치가 있습니다. 그렇지 않으면 맹목적으로 인덱스를 유지 관리하는 포인트가 없습니다.이 링크 참조 - http://stackoverflow.com/questions/3243475/how-do-you-identify-unused-indexes-in-a-mysql-database –

답변

1

또한 열망로드를 사용할 수 있습니다 : 색인이 것 쿼리에 대한 더 나은 액세스 시간에 대한 더 많은 정보없이

0

아닐의 대답은 정확하지만 그가 암울한 것처럼 귀하의 질문은 너무 모호합니다. 쿼리 로깅을 켜고 페이지 로딩에서 어떤 쿼리가 시간을 들여야하는지 살펴 보겠습니다. 그런 다음 잘못된 쿼리를 입력하고 rails dbconsole 또는 Oracle에서 제공하는 독립 실행 형 MySQL 클라이언트를 사용하여 연결할 수있는 mysql 프롬프트에 EXPLAIN {query}을 입력합니다. 병목 쿼리에 사용 된 인덱스를보고보다 구체적인 질문을하십시오.

귀하의 검색어 중 상당수가 카테고리 ID로 제품을 쿼리하고 있다고 생각합니다. Products에 인덱싱 된 category_id 열을 추가하면 가입을 피할 수 있습니다. 그렇지만 그 칼럼을 최신 상태로 유지해야합니다.