집 >데이터 베이스 >MySQL 튜토리얼 >mysql 인덱스는 무엇을 의미합니까?
인덱스란 무엇인가요?
MySQL의 공식 인덱스 정의는 다음과 같습니다. 인덱스(Index)는 MySQL이 데이터를 효율적으로 얻을 수 있도록 돕는 데이터 구조입니다. 간단히 말해서 빠르게 검색하고 정렬할 수 있는 데이터 구조라고 이해할 수 있습니다. Mysql 인덱스는 크게 B+Tree 인덱스와 Hash 인덱스의 두 가지 구조로 되어 있습니다. 우리가 일반적으로 지칭하는 인덱스는 특별한 언급이 없는 한 일반적으로 B-트리 구조(B+Tree 인덱스)로 구성된 인덱스를 의미합니다.
인덱스의 종류
인덱스의 종류는 해시, BTREE, 전체 텍스트 인덱스 등 여러 가지가 있습니다. 사실 어떤 종류든 모두 특정 비즈니스에서 데이터를 쉽고 빠르게 찾기 위한 알고리즘입니다. 시나리오.
예를 들어 해시 인덱스, 키-값 형식, 가장 간단한 것, 책의 목차는 비슷합니다.
책이 있으면 기사 제목을 알고, 목차가 없으면 책 전체를 뒤져야 제목을 찾을 수 있습니다.
하지만 만약에. 제목은 키로 별도로 추출되고, 페이지 번호는 값으로 사용됩니다. 콘텐츠를 빠르게 찾을 수 있습니다.
분명히 책의 시작 부분에 있는 목차는 여러 페이지를 차지하고, 색인을 만드는 것도 리소스를 소모합니다.
BTREE 인덱스는 또 다른 알고리즘이며, 다양한 비즈니스 시나리오에서 해당 인덱스를 사용하는 것이 더 효율적입니다.
신화사전의 목차가 일반 책의 목차와 다른 것처럼, 신화사전도 병음이나 부수적인 질의 방식을 통해 단어가 위치한 페이지를 빠르게 찾을 수 있는 일종의 '색인'이기도 합니다. "
전체 텍스트 인덱스도 있습니다. 잠깐, 여기서는 설명하지 않겠습니다. 예를 들어 solr 및 elasticsearch에서 사용되는 알고리즘을 연구할 수 있습니다.
인덱스 개념
인덱스의 본질: 인덱스 데이터베이스 테이블에 있는 필드 값의 복사본입니다. 이 필드를 인덱스의 키워드라고 합니다
기본 키와 인덱스 필드를 저장하고 엔터티 테이블의 레코드를 가리키는 인덱스 A 테이블도 마찬가지입니다
인덱스는 종종 복잡한 데이터 구조(이중 연결 목록, B+ 트리/B 트리, 해시)를 통해 구현됩니다.
MyISAM 스토리지 엔진의 테이블은 기본 인덱스를 지원하고, InnoDB 스토리지 엔진 테이블은 클러스터형 인덱스(기본 인덱스) 및 비-인덱스를 지원합니다. 클러스터형 인덱스(보조 인덱스) 인덱스 최적화는
인덱스의 장점과 단점
@장점:
MySQL용 MySQL 인덱스 설정을 사용합니다. 효율적인 작업은 매우 중요하며 MySQL의 검색 속도를 크게 향상시킬 수 있습니다.
그룹화 및 정렬 절에서 데이터 검색을 사용하면 쿼리 시간에 그룹화 및 정렬에 소요되는 시간을 줄일 수 있습니다. (데이터베이스의 레코드가 재정렬됩니다.)
테이블 연결의 연결 조건은 테이블 간의 직접 연결 속도를 높일 수 있습니다
@ 단점:
그러나 인덱스를 과도하게 사용하면 인덱스 남용이 발생하고 검색 속도가 증가하며 테이블 업데이트 속도가 감소합니다
예: 테이블에 대한 작업을 추가, 삭제, 수정 및 쿼리할 때 MySQL은 다음과 같은 작업을 수행해야 합니다. 데이터를 저장하되 인덱스 파일도 저장하면 인덱싱이 인덱스 파일을 위한 디스크 공간을 차지하게 됩니다
인덱스를 생성하고 유지하는 데 시간이 걸리며 데이터 양이 늘어날수록 시간도 늘어납니다
위 내용은 mysql 인덱스는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!