MYSQL: 테이블 만들기의 인덱스 키워드 및 사용 시기
무엇인가.index
키워드 의미 및 어떤 기능을 제공합니까?쿼리 속도를 높이기 위한 것으로 알고 있지만, 어떻게 해야 할지 잘 모르겠습니다.
인덱스할 열을 선택하는 방법은 무엇입니까?
의 샘플index
키워드 사용은 아래에 나와 있습니다.create table
쿼리:
CREATE TABLE `blog_comment`
(
`id` INTEGER NOT NULL AUTO_INCREMENT,
`blog_post_id` INTEGER,
`author` VARCHAR(255),
`email` VARCHAR(255),
`body` TEXT,
`created_at` DATETIME,
PRIMARY KEY (`id`),
INDEX `blog_comment_FI_1` (`blog_post_id`),
CONSTRAINT `blog_comment_FK_1`
FOREIGN KEY (`blog_post_id`)
REFERENCES `blog_post` (`id`)
)Type=MyISAM
;
MySQL 참조 매뉴얼에서 MySQL 인덱스 사용 방법을 읽는 것이 좋습니다.인덱스가 사용된다고 나와 있습니다.
- 일치하는 행을 찾는 방법
WHERE
신속하게 절을 정하다 - 고려 대상에서 행을 제거합니다.
- 조인을 수행할 때 다른 테이블에서 행을 검색합니다.
- 찾기
MIN()
또는MAX()
특정 인덱스 열에 대한 값입니다. - 특정 조건에서 테이블을 정렬하거나 그룹화합니다.
- 데이터 행을 참조하지 않고 인덱스만 사용하여 쿼리를 최적화합니다.
데이터베이스의 색인은 책의 색인처럼 작동합니다.색인이 알파벳 순으로 나열되므로 책에서 찾고 있는 내용을 더 빨리 찾을 수 있습니다.MySQL은 알파벳 목록 대신 B-tree를 사용하여 인덱스를 구성합니다. 이는 목적에 비해 더 빠릅니다(그러나 인간에게는 훨씬 더 오래 걸립니다).
인덱스를 더 많이 사용한다는 것은 공간을 더 많이 사용한다는 것을 의미하므로(인덱스 유지 관리의 오버헤드), 위의 사용 기준을 충족하는 열의 인덱스만 사용하는 것이 좋습니다.
당신의 예에서,id
그리고.blog_post_id
열 둘 다 인덱스를 사용합니다(PRIMARY KEY
응용 프로그램에서 더 빨리 찾을 수 있도록 인덱스이기도 합니다.의 경우에는id
이것은 사용자들이 댓글을 빠르게 수정하거나 삭제할 수 있게 해줄 것이고, 다음의 경우에.blog_post_id
응용프로그램이 지정된 게시물에 대한 모든 주석을 신속하게 찾을 수 있습니다.
다음 항목에 대한 인덱스가 없습니다.email
기둥.이는 특정 전자 메일 주소로 모든 블로그 게시물을 검색하는 데 상당한 시간이 걸릴 수 있음을 의미합니다.특정 전자 메일 주소로 모든 설명을 검색하는 것이 추가하려는 것이라면 색인도 추가하는 것이 좋습니다.
이 키워드는 열에 인덱스를 만들고 있음을 의미합니다.blog_post_id
식탁과 함께
다음과 같은 쿼리:
SELECT *
FROM blog_comment
WHERE blog_post_id = @id
이 인덱스를 사용하여 이 필드를 검색하고 더 빠르게 실행합니다.
또한, 다음과 같은 것이 있습니다.foreign key
칼럼에.
블로그 게시물을 삭제하기로 결정하면 데이터베이스는 이 테이블에 대해 독립된 주석이 없는지 확인해야 합니다.인덱스는 또한 이 검사를 가속화하므로 다음과 같은 쿼리를 수행합니다.
DELETE
FROM blog_post
WHERE ...
또한 더 빨리 실행됩니다.
언급URL : https://stackoverflow.com/questions/561446/mysql-index-keyword-in-create-table-and-when-to-use-it
'source' 카테고리의 다른 글
asp.net 에서 DateTime의 Javascript 직렬화는 Javascript 날짜 객체를 제공하지 않습니까? (0) | 2023.09.04 |
---|---|
jQuery ajax 호출 측면에서 php 에코와 반환 간의 차이 (0) | 2023.09.04 |
'--rm' 플래그는 무엇을 하고 있습니까? (0) | 2023.09.04 |
기본 설정 요약에서 Android 기본 설정의 현재 값을 표시하는 방법은 무엇입니까? (0) | 2023.09.04 |
phpmyadmin에서 기본 컬렉션 변경 (0) | 2023.09.04 |