MySQL 인덱스를 사용하는 방법

藏色散人
풀어 주다: 2020-09-16 09:37:56
원래의
7893명이 탐색했습니다.

mysql 인덱스 사용 방법: [alter table table_name add index 인덱스 이름(열)], 일반 인덱스를 추가한다는 의미입니다. mysql 인덱스의 목적은 쿼리 효율성을 높이는 것입니다.

MySQL 인덱스를 사용하는 방법

mysql 인덱스의 목적은 쿼리 효율성을 높이는 것입니다. 이는 사전과 비교할 수 있습니다. "mysql"이라는 단어를 찾으려면 반드시 m 문자를 찾은 다음 y를 찾아야 합니다. 아래에서 아래로 문자를 입력하고 나머지 SQL을 찾으세요. 색인이 없으면 원하는 것을 찾기 위해 모든 단어를 살펴봐야 할 수도 있습니다.

(추천 튜토리얼: mysql 동영상 튜토리얼)

인덱스를 생성할 때 어떤 열이 SQL 쿼리에 사용될지 고려한 다음 해당 열에 대해 하나 이상의 인덱스를 생성해야 합니다. 실제로 인덱스는 기본 키 또는 인덱스 필드를 보유하는 테이블이자 각 레코드를 실제 테이블을 가리키는 포인터이기도 합니다. 인덱스는 데이터베이스 사용자에게 표시되지 않으며 쿼리 속도를 높이는 데만 사용됩니다. 데이터베이스 검색 엔진은 색인을 사용하여 레코드를 빠르게 찾습니다.

MySQL에는 4가지 종류의 인덱스(기본 키 인덱스/일반 인덱스/전체 텍스트 인덱스/고유 인덱스)가 있습니다

1. 인덱스 추가

1.1 기본 키 인덱스 추가

테이블에서 열을 기본 키로 설정하면 그러면 해당 열은 기본 키 인덱스입니다

create table a(  
id int primary key auto_increment,  
name varchar(20) not null default ''  
);  
//这里id就是表的主键
로그인 후 복사

테이블을 생성할 때 기본 키 인덱스를 지정하지 않은 경우 테이블을 생성한 후에 추가할 수도 있습니다.

alter table table_name add primary key (column name);
로그인 후 복사

1.2 일반 인덱스

일반 인덱스는 일반적으로 테이블 뒤에 추가됩니다.

create index 索引名 on table_name(column1,column2);
alter table table_name add index 索引名(column1,column2);
로그인 후 복사

1.3 전체 텍스트 인덱스

우선 전체 텍스트 인덱스는 주로 기사, 제목과 같은 텍스트 파일에 대한 것입니다. 전체 텍스트 인덱스는 MyISAM에만 유효합니다. (InnoDB도 전체 텍스트 인덱스를 지원합니다. mysql5.6 이후)

create table c(  
id int primary key auto_increment ,  
title varchar(20),  
content text,  
fulltext(title,content)  
)engine=myisam charset utf8;  
  
insert into c(title,content) values  
    ('MySQL Tutorial','DBMS stands for DataBase ...'),  
    ('How To Use MySQL Well','After you went through a ...'),  
    ('Optimizing MySQL','In this tutorial we will show ...'),  
    ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),  
    ('MySQL vs. YourSQL','In the following database comparison ...'),  
    ('MySQL Security','When configured properly, MySQL ...');
로그인 후 복사

전체 텍스트 인덱스 사용 시 흔히 발생하는 실수:

select * from c where content like "%mysql%";
로그인 후 복사

여기서는 전체 텍스트 인덱스가 사용되지 않으며, explain을 사용하여 볼 수 있습니다. 올바른 사용법:

select *  from c where match(title,content) against ('MYSQL');
로그인 후 복사

Remarks:

1. mysql의 전체 텍스트 인덱스는 myisam

2에만 유효합니다. mysql 자체에서 제공하는 전체 텍스트는 영어 ->sphinx(coreseek) 기술로 중국어를 처리합니다

3. 사용법은 match(field name..) against('keyword')

1.4 Unique index

create table d(id int primary key auto_increment , name varchar(32) unique)
로그인 후 복사

d 테이블의 이름은 고유 인덱스입니다. 고유 인덱스는 여러 개의 null을 가질 수 있으며 중복된 내용이 될 수 없습니다

기본 키 인덱스와 비교하여 기본 키 필드는 null이거나 반복될 수 없습니다

2. 인덱스 쿼리

show indexes from table_name;
show keys from table_name;
로그인 후 복사

3. 인덱스를 삭제하세요

alter table table_name drop index 索引名;
로그인 후 복사
.

위 내용은 MySQL 인덱스를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!