MySQL이 인덱스를 생성하는 방법에 대한 자세한 설명(사례)

coldplay.xixi
풀어 주다: 2021-03-24 10:48:06
앞으로
5360명이 탐색했습니다.

MySQL이 인덱스를 생성하는 방법에 대한 자세한 설명(사례)

사례:index_test 데이터베이스를 생성하고, 다음 표의 구조에 따라 index_test 데이터베이스에 test_table1, test_table2 두 개의 데이터 테이블을 생성하고, 연산 프로세스에 따라 데이터 테이블에 대한 기본 연산을 완료합니다.

(1) MySQL 데이터베이스에 로그인
(2) 데이터베이스 index_test 생성
(3) test_table1 테이블 생성
(4) test_table2 테이블 생성, 스토리지 엔진은 MyISAM
(5) alter table 문 사용 test_table2 테이블의 생성 필드를 생성하려면 ComDateIdx라는 일반 인덱스
(6) alter table 문을 사용하여 test_table2 테이블의 id 필드에 UniqIdx2라는 고유 인덱스를 추가하고 내림차순으로 정렬합니다.
(7) create 사용 이름, 중간 이름, 성의 세 필드에 대한 인덱스 MultiColidx2라는 결합 인덱스 생성
(8) create index를 사용하여 제목 필드에 FTidx라는 전체 텍스트 인덱스 생성
(9) alter table 문을 사용하여 고유한 인덱스를 삭제 test_table1 테이블의 Uniqidx라는 인덱스
(10) drop index 문을 사용하여 test_table2 테이블의 MultiColidx2라는 결합 인덱스를 삭제합니다. 몇 가지 참고 사항

(무료 학습 권장 사항:mysql 비디오 튜토리얼)


(1) MySQL 데이터베이스에 로그인
C:\Users\Hudie>mysql -h localhost -u root -p Enter password: *******
로그인 후 복사
(2) 데이터베이스 생성 index_test
mysql> create database index_test;Query OK, 1 row affected (0.06 sec)mysql> use index_test;Database changed
로그인 후 복사
(3) 테이블 생성 test_table1
mysql> create table test_table1 -> ( -> id int not null primary key auto_increment, -> name char(100) not null, -> address char(100) not null, -> description char(100) not null, -> unique index uniqidx(id), -> index MultiColidx(name(20),address(30) ), -> index Comidx(description(30)) -> );Query OK, 0 rows affected (0.11 sec)mysql> show create table test_table1 \G*************************** 1. row *************************** Table: test_table1Create Table: CREATE TABLE `test_table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(100) NOT NULL, `address` char(100) NOT NULL, `description` char(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniqidx` (`id`), KEY `MultiColidx` (`name`(20),`address`(30)), KEY `Comidx` (`description`(30))) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.06 sec)
로그인 후 복사
test_table 테이블에 3개의 인덱스가 성공적으로 생성된 것을 확인할 수 있습니다. id 필드에 uniqidx라는 고유 인덱스가 있고, 설명 필드에 길이가 30인 일반 인덱스가 있습니다.

(4) test_table2 테이블을 생성합니다. 스토리지 엔진은 MyISAM
mysql> create table test_table2 -> ( -> id int not null primary key auto_increment, -> firstname char(100) not null, -> middlename char(100) not null, -> lastname char(100) not null, -> birth date not null, -> title char(100) null -> )ENGINE=MyISAM;Query OK, 0 rows affected (0.07 sec)
로그인 후 복사
입니다.(5) alter table 문을 사용하여 test_table2
mysql> alter table test_table2 add index ComDateidx(birth);Query OK, 0 rows affected (0.13 sec)Records: 0 Duplicates: 0 Warnings: 0
로그인 후 복사
테이블의 생성 필드에 ComDateIdx라는 공통 인덱스를 생성합니다.(6) alter를 사용합니다. test_table2 테이블의 출생 필드에 공통 인덱스를 생성하는 table 문 id 필드에 Uniqidx2라는 고유 인덱스를 추가합니다
mysql> alter table test_table2 add unique index Uniqidx(id);Query OK, 0 rows affected (0.11 sec)Records: 0 Duplicates: 0 Warnings: 0
로그인 후 복사
(7) create index를 사용하여 이름 및 중간 이름 필드에 MultiColidx2라는 결합 인덱스를 생성합니다
mysql> create index MultiColidx2 on test_table2(firstname,middlename);Query OK, 0 rows affected (0.12 sec)Records: 0 Duplicates: 0 Warnings: 0
로그인 후 복사
(8) create index를 사용하여 제목 필드에 이름을 만듭니다. FTidx
mysql> create fulltext index ftidx on test_table2(title);Query OK, 0 rows affected (0.13 sec)Records: 0 Duplicates: 0 Warnings: 0
로그인 후 복사
의 전체 텍스트 인덱스의 경우(9) alter table 문을 사용하여 test_table1
mysql> alter table test_table1 drop index uniqidx;Query OK, 0 rows affected (0.09 sec)Records: 0 Duplicates: 0 Warnings: 0
로그인 후 복사
테이블에서 Uniqidx라는 고유 인덱스를 삭제합니다(10). drop index 문을 사용하여 test_table2
mysql> drop index MultiColidx2 on test_table2;Query OK, 0 rows affected (0.12 sec)Records: 0 Duplicates: 0 Warnings: 0
로그인 후 복사
테이블에서 MultiColidx2라는 결합 인덱스를 삭제합니다. 몇 가지 참고 사항:
1. 인덱스는 데이터베이스 성능에 매우 중요합니다. 어떻게 사용합니까?

    인덱스 열의 열 수가 적으면 필요한 디스크 공간과 유지 관리 오버헤드가 줄어듭니다.
  • 큰 테이블에 여러 개의 결합된 인덱스가 생성되면 인덱스 파일도 빠르게 확장됩니다. 또한 더 많은 쿼리를 처리할 수 있는 더 많은 인덱스가 있습니다.
  • 데이터베이스 스키마나 애플리케이션 디자인에 영향을 주지 않고 인덱스를 추가, 삭제, 수정해 보세요.
2. 문자열 유형 필드의 색인을 생성하려면 짧은 색인

    을 사용해 보세요. 가능하면 접두사 길이를 지정해야 합니다. 예를 들어 char(255) 열이 있는 경우 대부분의 값이 처음 10자 또는 30자 내에서 고유한 경우 전체 열을 인덱싱할 필요가 없습니다.
  • 짧은 인덱스는 쿼리 속도를 향상시킬 뿐만 아니라 디스크 공간을 절약하고 I/O 작업을 줄일 수 있습니다.

관련 무료 학습 권장 사항:mysql 데이터베이스(동영상)

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

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