2010-05-27 5 views
1

안녕하세요 초보자가 여기 내 질문에MySQL 인덱스 키는 무엇입니까?

를 MySQL로 오전 :

  1. 무엇 MySQL의 인덱스 키의 사용?

  2. 인덱스 키를 정의 할 때 MySQL 쿼리와 차이가 있습니까?

  3. 모든 기본 키가 기본 색인 키입니까?

감사합니다 (열 집합 또는) 만

답변

3

컬럼에 인덱스를 정의 1 추가 디스크 공간의 비용으로, 더 빠르게 그 열에서 검색 (또는 설정)합니다.

2 예. 차이점은 해당 열을 사용하는 쿼리가 훨씬 빠릅니다.

3- 예, 기본 키로 검색하는 것이 일반적이므로 해당 열을 항상 색인화하는 것이 좋습니다.

MySQL 색인 생성 here에 대해 자세히 읽어보십시오.

+0

감사합니다 !!!!!!!!!!!!!!!! ~ – leon

0

실제로 인덱스는 추가 레코드 집합입니다. 아무것도 더. 인덱스 빠르게 액세스 할 수 있도록

상황은 다음과 같습니다

  • 내부에 넣어 엔진이 너무 덜 블록을 읽는 의미 구문 분석 인덱스가 작은
  • 전체 테이블 행보다 인덱스 버퍼 것을 더 기회가 하드 드라이브
  • 의 인덱스 그렇게 주어진 값을 찾아, 이미 정렬이 null이되는 경우
  • 쉽게, 그것은 더 빨리 (여러 가지 이유로,하지만 알 수있는 가장 중요한 것은 그 엔진이다

인덱스가 유용 여부를 알고 oesn't 저장소 인덱스에서 null 값)은 (분명 내가 기본 키에 대해 이야기하고 있지 않다)와 조사해야 추측하기 때문에 쉽지 않다. 여기에 몇 가지 대응은 당신의 작업이 느려질 수 있습니다 때이다 : 그것은 더 유지 보수가 필요

    • 그것은 인덱스 필드에 삽입 및 업데이트 속도가 느려집니다 : 통계 컴퓨팅이 걸릴 수 있도록 각 인덱스 구축 할 필요가 많은 인덱스를 추가하면 상당히 오래 걸릴 수 있습니다.
    • 통계가 최신이 아닌 경우 쿼리 속도가 느려질 수 있습니다. 이 효과는 엔진이 실제로 "잘못된 방향"이 될 수 있기 때문에 치명적일 수 있습니다.
    • 쿼리가 부적절 할 때 속도가 느려질 수 있습니다 (어쨌든 인덱스는 규칙이 아니라 예외가되어야합니다 : 인덱스가 없습니다, 특정 모든 테이블에는 적어도 하나의 인덱스가 있지만 대개 조사에는 나온다.) 이 마지막 포인트에 대해 많은 의견을 말할 수는 있지만 모든 사례가 특별하고 많은 사례가 이미 인터넷에 존재한다고 생각합니다.

    이제 '모든 기본 키가 기본 색인 키입니까?'라는 질문에 대해 최적화 프로그램이 작동하지 않는다고 말해야합니다. 테이블에 정의 된 다양한 인덱스가있을 때 최적의 성능을 얻으려면보다 효율적인 인덱스 조합이 즉석 데이터 및 일부 다른 정적 데이터 (인덱스 통계)와 함께 컴파일됩니다. 기본 색인 자체가 없으며, 모든 상황이 다른 결과를 가져옵니다.

    감사합니다.