MySQL에서 INDEX와 KEY를 사용하는 것의 차이점은 무엇입니까?
다음 코드와 같이 INDEX를 사용하는 방법을 알고 있습니다. 그리고 외래 키 와 기본 키 를 사용하는 방법을 알고 있습니다 .
CREATE TABLE tasks (
task_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INT UNSIGNED NOT NULL DEFAULT 0,
task VARCHAR(100) NOT NULL,
date_added TIMESTAMP NOT NULL,
date_completed TIMESTAMP,
PRIMARY KEY (task_id),
INDEX parent (parent_id),
....
그러나 다음과 같이 INDEX 대신 KEY를 사용하는 코드를 찾았습니다.
...
KEY order_date (order_date)
...
공식 MySQL 페이지에서 설명을 찾을 수 없습니다. KEY와 INDEX의 차이점이 무엇인지 말해 줄 수 있습니까?
내가 볼 수있는 유일한 차이점은을 사용할 때 KEY ...
단어를 반복해야한다는 것
KEY order_date (order_date)
입니다.
차이가 없습니다. 그것들은 동의어입니다.
에서 수동 입력 :CREATE TABLE
KEY
일반적으로의 동의어입니다INDEX
. 키 속성PRIMARY KEY
은KEY
열 정의에 지정된 경우와 같이 지정할 수도 있습니다 . 이것은 다른 데이터베이스 시스템과의 호환성을 위해 구현되었습니다.
"차이"에 대한 좋은 설명 은 다음과 같습니다 .
"MySQL에는 모든 키도 색인화해야합니다. 이는 성능 향상을 위해 MySQL에 특정한 구현 세부 사항입니다."
INDEX
'테이블 만들기'문서에서 동의어로 언급됩니다 . MySQL 5.5 참조 설명서 :: 13 SQL 문 구문 :: 13.1 데이터 정의 문 :: 13.1.17 CREATE TABLE 구문
아무도 이미 섹션을 인용하고 5.1에 대한 도움말을 연결하지 않았습니다.
PRIMARY KEY
기본 키와 인덱스를 생성하는 것처럼 KEY
인덱스 만 생성합니다.
키는 테이블 내에서 매우 특정한 역할을 수행하는 특수 필드이며 키 유형에 따라 테이블 내에서 용도가 결정됩니다.
인덱스는 RDBMS (데이터베이스 관리 시스템)가 데이터 처리를 개선하기 위해 제공하는 구조입니다. 인덱스는 논리적 데이터베이스 구조와 관련이 없습니다.
그래서...
키는 테이블 내에서 레코드를 식별하는 데 사용하는 논리적 구조이고 인덱스는 데이터 처리를 최적화하는 데 사용하는 물리적 구조입니다.
출처 : 단순한 필사자를위한 데이터베이스 디자인
저자 : Michael Hernandez
키는 인덱스를 작성하는 일련의 열 또는 표현식입니다.
인덱스는 데이터베이스에 저장된 구조이지만 키는 논리적 개념입니다.
색인은 레코드에 빠르게 액세스하는 데 도움이되는 반면 키는 레코드를 고유하게 식별합니다.
모든 테이블에는 반드시 키가 있지만 인덱스가 반드시 필요한 것은 아닙니다.
https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721을 확인 하십시오.
참고 URL : https://stackoverflow.com/questions/1401572/whats-the-difference-between-using-index-vs-key-in-mysql
'IT' 카테고리의 다른 글
서버 측 API를 통해 Google 웹 로그 분석에 이벤트를 게시 할 수있는 방법이 있습니까? (0) | 2020.05.26 |
---|---|
Swift에서 약한 참조 배열을 어떻게 선언합니까? (0) | 2020.05.26 |
세트에서 임의의 요소 선택 (0) | 2020.05.26 |
로거의 메시지에 대해 JUnit 어설 션을 수행하는 방법 (0) | 2020.05.26 |
Chrome에서 탭이 비활성 상태 일 때 setInterval도 작동하게하려면 어떻게해야하나요? (0) | 2020.05.26 |