집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 인덱스란 무엇입니까? mysql 인덱스에 대한 간략한 토론
이 기사에서는 mysql 인덱스가 무엇인지 설명합니다. 누구나 mysql 인덱스에 대해 쉽게 이해할 수 있도록 mysql 인덱스에 대해 간략하게 이야기해 보겠습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
One: 인덱스란 무엇입니까
인덱스 자체는 데이터 테이블의 필드와 해당 필드에 해당하는 물리적 공간이 기록되는 독립적인 저장 단위입니다. 인덱스 내부에는 알고리즘 지원이 있어 쿼리 속도가 매우 빨라집니다. [추천 관련 영상 튜토리얼: mysql 튜토리얼]
인덱스를 사용하면 인덱스를 조건으로 데이터를 쿼리할 수 있고 속도도 매우 빠르다
1.인덱스 자체가 다음을 지원한다. 빠르게 위치를 지정할 수 있는 "algorithm" 우리가 찾고자 하는 키워드(필드)
2. 인덱스 field는 물리적 주소와 직접적인 대응을 갖고 있어 우리가 원하는 정보를 빠르게 찾는 데 도움이 됩니다. want to find
데이터 테이블의 모든 필드를 인덱싱할 수 있습니다
두 번째, 인덱스 유형
1, 네 가지 유형:
(1) 기본 키 기본 키
auto_increment는 기본 키에 대해 설정되어야 합니다. index, 인덱스 컬럼의 값은 null이 아니어야 하고, 고유해야 합니다
(2) Unique Unique Index
인덱스 컬럼의 값은 중복될 수 없으나, Null 값은 허용됩니다
(3) 값 일반 인덱스 인덱스
인덱스 열의 반복이 가능합니다.
(4) 전체 텍스트 인덱스
Myisam 데이터 테이블에서 이 인덱스를 설정할 수 있습니다.
2. 복합 인덱스
인덱스는 두 개 이상의 열로 구성되며 이를 복합 인덱스 또는 조인트 인덱스라고 합니다.
셋, 인덱스 생성
1, 테이블 생성 시
1), 멤버 테이블 생성 시 다양한 인덱스를 생성합니다.
create table member( id int not null auto_increment comment '主键', name char(10) not null default '' comment '姓名', height tinyint not null default 0 comment '身高', old tinyint not null default 0 comment '年龄', school varchar(32) not null default '' comment '学校', intro text comment '简介', primary key (id), // 主键索引 unique index nm (name), //唯一索引,索引也可以设置名称,不设置名字的话,默认字段名 index (height), //普通索引 fulltext index (intro) //全文索引 )engine = myisam charset = utf8;
2), 기존 데이터 테이블에 인덱스 추가
//注:一般设置主键后,会把主键字段设置为自增。(alter table member modify id int not null auto_increment comment '主键';) alter table member add primary key(id); alter table member add unique key nm (name); alter table member add index(height); alter table member add fulltext index(intro);
3), 복합 인덱스 생성(인덱스에는 이름이 없으며 첫 번째 필드는 기본적으로 이름으로 가져옴)
alter table member add unique key nm (name,height);
2, 인덱스 삭제
alter table 表名 drop primary key;//删除主键索引
참고:
이 기본 키 필드에 auto_increment 속성이 있는 경우 먼저 삭제해야 합니다. (테이블 테이블 이름 변경 null 주석 '기본 키'가 아닌 int)
데이터 테이블 필드의 auto_increment 속성을 제거합니다.
alter table 表名 drop index 索引名称; //删除其它索引(唯一,普通,全文)
예:
alter table member drop index nm;
4. 을 사용합니다
특정 작업: explain sql 문 쿼리
기본 키 인덱스를 설정하지 않은 상황: (실행 속도 및 효율성이 낮음)
기본 키 추가 후:
5. 인덱스가 적합한 시나리오
1. Where 쿼리 조건(Where 뒤에 설정된 쿼리 조건 필드가 인덱싱에 적합함).
2. 쿼리 정렬(필드별 정렬)
6. 인덱스 원칙
1. 필드 독립 원칙
select * from emp where empno = 1325467;//empno条件独立,使用索引 select * from emp where empno+2 = 1325467;//empno条件不独立,只有独立的条件字段才可以使用索引
2, 퍼지 쿼리, like & _
% :여러 개의 퍼지 콘텐츠 연결 _:하나의 퍼지 콘텐츠 연결예:select * form 表名 where a like "beijing%";//使用索引 select * from 表名 where a like "beijing_";//使用索引 select * from 表名 where a like "%beijing%”;//不使用索引 select * from 表名 where a like "%beijing";//不使用索引
3, 복합 인덱스 인덱스(a,b)
select * from 表名 where a like "beijing%";//使用索引 select * from 表名 where b like "beijing%;//不使用索引 select * form 表名 where a like "beijing%" and b like "beijng%";//使用索引4, 또는 원리
OR 등. 조건은 반드시 인덱스이어야 합니다. 인덱스는 모두 인덱스가 있는 경우에만 사용할 수 있습니다.
예: (index(a), index(b))select * from 表名 where a = 1 or b = 1;//使用索引 select * from 表名 where a = 1 or c = 1;//没有使用索引
요약:
위 내용은 이 글의 전체 내용이므로, 모든 분들의 학습에 도움이 되기를 바랍니다.위 내용은 MySQL 인덱스란 무엇입니까? mysql 인덱스에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!