>  기사  >  데이터 베이스  >  mysql에서 인덱스를 생성하는 기술은 무엇입니까?

mysql에서 인덱스를 생성하는 기술은 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-05-09 13:46:324240검색

MySQL에서 인덱스를 생성하기 위한 팁: 1. 기본 키 열에 대한 인덱스를 생성합니다. 2. 자주 정렬, 그룹화 및 조인이 필요한 열에 대한 인덱스를 생성합니다. 3. 자주 쿼리로 사용해야 하는 열에 대한 인덱스를 생성합니다. 4. 차별화 정도를 선택해 보세요. 상위 열이 인덱스로 사용됩니다. 5. 계산에 참여하지 않는 열에 대한 인덱스를 만듭니다.

mysql에서 인덱스를 생성하는 기술은 무엇입니까?

이 기사에서는 인덱스 생성에 더 적합한 몇 가지 컬럼을 소개합니다. 물론 인덱스를 생성할 때 주의해야 할 몇 가지 상황도 있습니다.

추천 과정: MySQL 튜토리얼

1. 고유 인덱스 선택

고유 인덱스의 값은 고유하며, 인덱스를 통해 특정 레코드를 보다 빠르게 판별할 수 있습니다. 예를 들어 학생 테이블의 중학교 ID는 고유한 필드입니다. 이 분야에 대한 고유한 색인을 구축하면 특정 학생의 정보를 빠르게 확인할 수 있습니다. 이름을 사용하는 경우 동일한 이름이 있을 수 있으므로 쿼리 속도가 느려집니다.

2. 정렬, 그룹화, Union 연산이 자주 필요한 필드(열)에 대한 인덱스를 생성하세요

ORDER BY, GROUP BY, DISTINCT, UNION과 같은 연산이 자주 필요한 필드의 경우 정렬 작업에 많은 시간이 낭비됩니다. 색인을 생성하면 정렬 작업을 효과적으로 피할 수 있습니다.

3. 쿼리 조건으로 자주 사용되는 필드(열)에 대한 인덱스를 생성하세요

필드가 쿼리 조건으로 자주 사용되는 경우 해당 필드의 쿼리 속도가 전체 테이블의 쿼리 속도에 영향을 미칩니다. 따라서 이러한 필드를 인덱싱하면 전체 테이블의 쿼리 속도가 향상될 수 있습니다.

4. 인덱스 수를 제한하세요

인덱스 수가 항상 좋은 것은 아닙니다. 각 인덱스에는 디스크 공간이 필요합니다. 인덱스가 많을수록 더 많은 디스크 공간이 필요합니다. 테이블이 수정되면 인덱스를 재구성하고 업데이트하는 것이 번거롭다. 인덱스가 많을수록 테이블을 업데이트하는 데 더 많은 시간이 소요됩니다.

5. 데이터량이 적은 인덱스를 사용해 보세요

인덱스 값이 너무 길면 쿼리 속도에 영향을 미치게 됩니다. 예를 들어 CHAR(100) 유형 필드에 대한 전체 텍스트 검색은 CHAR(10) 유형 필드보다 확실히 더 많은 시간이 걸립니다.

6. 접두어를 사용하여 색인을 생성해 보세요.

인덱스 필드의 값이 매우 긴 경우 해당 값의 접두어를 사용하여 색인을 생성하는 것이 가장 좋습니다. 예를 들어, TEXT 및 BLOG 유형 필드에 대한 전체 텍스트 검색은 시간 낭비입니다. 필드의 처음 몇 문자만 검색하면 검색 속도가 향상될 수 있습니다.

7. 구별도가 높은 열을 인덱스로 선택하세요.

구분 공식은 count(distinct col)/count(*)이며, 이는 반복되지 않는 필드의 비율을 나타냅니다. 우리가 스캔하는 레코드 수가 적으면 고유 키의 구별은 1인 반면, 일부 상태 및 성별 필드는 빅 데이터에 직면하여 0의 구별을 가질 수 있습니다. 그러면 누군가가 이 비율에 대한 실증적 가치가 있는지 물을 수 있습니다. 다양한 사용 시나리오로 인해 이 값을 결정하기가 어렵습니다. 일반적으로 조인해야 하는 필드는 0.1 이상, 즉 스캔당 평균 10개 레코드가 필요하므로 인덱스 열은 계산에 참여할 수 없습니다. "clean" 열을 유지하세요

예를 들어 from_unixtime(create_time) = '2014-05-29'는 인덱스를 사용할 수 없습니다. 이유는 매우 간단합니다. b+ 트리는 데이터 테이블에 필드 값을 저장합니다. 하지만 검색할 때는 모든 요소에 기능을 적용해야 합니다. 이에 비해 비용이 너무 높습니다. 따라서 명령문은 create_time = unix_timestamp('2014-05-29');

9로 작성해야 합니다. 인덱스를 최대한 확장하고 새 인덱스를 생성하지 마십시오

예를 들어 이미 다음과 같은 인덱스가 있습니다. a를 테이블에 추가하고 이제 (a, b) 인덱스를 추가하면 원래 인덱스만 수정하면 됩니다참고: 인덱스를 선택하는 궁극적인 목적은 쿼리를 더 빠르게 만드는 것입니다. 위에 제시된 원칙은 가장 기본적인 지침이지만 위의 지침을 고수할 수는 없습니다. 독자들은 앞으로의 연구와 작업에서도 계속해서 연습해야 합니다. 실제 신청상황을 토대로 분석, 판단하여 가장 적절한 인덱싱 방식을 선택합니다.

위 내용은 mysql에서 인덱스를 생성하는 기술은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.