2011-11-12 7 views
0

나는MySQL 인덱스 성능 ...이 간단한 테이블에 인덱스를 생성해야합니까?

  1. 당신은 열이 만 약 2000 행을 포함하는 테이블에 인덱스 사용자 ID 열을 권하고 싶습니다 ... 인덱스 성능에 대한 약 20 주제를 읽을 수 있지만 여전히 몇 가지 질문을했습니다 ID (자동 증가) (SSN 같은 고유) 아이디, FIRST_NAME, LAST_NAME, PHONE_NUM 사용자가 D를 선택함으로써, 로그인 할 때마다 페이지 FIRST_NAME, LAST_NAME, PHONE_NUM 표시 ata는 어디에서 userid = '123-45-67890'을 사용하여 테이블에서?

  2. 1)과 같은 질문이지만 시간이지나면서 행 수가 증가하고 2000보다 훨씬 클 수 있습니까?

답변

3

사용자 WHERE 사용자 ID를 사용하여 테이블 데이터를 선택하여, 로그인 할 때마다 페이지 FIRST_NAME, LAST_NAME, PHONE_NUM 표시 = '123-45-67890'

절대적 대신 모든 행을 검색하는 대신 몇 가지 검색만으로 충분할 것입니다. 모든 페이지에서 검색어를 사용하고 있습니다. 세션에 해당 데이터를 저장하는 것에 대해 생각해 보셨습니까?

테이블에 많은 쓰기가 있다고 생각할 때 색인을 최소한으로 유지해야합니다 (예 : 로그인 할 때). 사용자 테이블에서는 대부분 읽기가 많고 쓰기가 거의 없습니다.

또한 인덱스를 사용하는 쿼리가 자주 실행되지 않고 성능이 만족 스럽다면 인덱스를 추가하지 않는 것이 좋습니다. 인덱스를 사용

EXPLAIN SELECT id_person FROM sl_person WHERE username='admin'

: 인덱스없이

EXPLAIN SELECT id_person FROM sl_person WHERE username='admin'

+0

고체 설명. –

관련 문제