정렬, 추출, 결합 등에 열을 사용하려면 인덱스를 해당 열에 추가해야 한다.
ALTER TABLE employee ADD INDEX(hired);
>>>
Query OK, 0 rows affected (0.22 sec)
Records: 0 Duplicates: 0 Warnings: 0
인덱스는 검색 시간을 획기적으로 단축하지만, 데이터 입력과 삭제에 걸리는 시간을 늘린다는 점을 기억하자. 테이블에 상당 분량의 데이터를 입력한 후 인덱스를 생성해야 한다. 일정 분량 이상의 데이터를 새로 입력해야 한다면 먼저 기존 인덱스부터 지워야 한다.
DROP INDEX hired ON employee;
그러고 나서 데이터를 입력한 후 다시 인덱스를 추가한다.
직원 ID나 이름처럼 하나의 열에 있는 값들이 모두 고유하면, 해당 열에는 UNIQUE 제약 조건을 붙이자. 열 데이터 타입의 폭(width)이 가변적이라면(VARCHAR, TINYTEXT, TEXT처럼), 해당 열에 들어가는 엔트리가 얼마나 고유한지 길이를 지정해야 한다.
ALTER TABLE employee ADD UNIQUE(empname(255));
기본 키는 언제나 유효한 값을 가지며(NOT NULL), 항상 인덱스로 기능하고 고유한 값을 가져야 한다.