[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 45편을 공개해드리겠다. 45편은 색인을 거는 방법을 소개한다.
2021년 2월 5일자 [즐겁게 배우는 SQL #45] 색인 - 색인 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.
하이라이트를 요약 정리하면 다음과 같다:
- 00:00 색인 개념과 색인 생성 기본 형식
- 04:13 단일 컬럼 색인 생성
- 10:04 다중 컬럼 색인 생성
- 14:05 색인 확인
- 15:59 색인 제거
원본 학습자료는 SQLite Index를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:
- 단계 1: 색인 개념과 색인 생성 기본 형식
CREATE [UNIQUE] INDEX index_name ON table_name(column_list);
- 단계 2: 단일 컬럼 색인 생성
- SQL> CREATE TABLE contacts ( first_name text NOT NULL, last_name text NOT NULL, email text NOT NULL );
- SQL> CREATE UNIQUE INDEX idx_contacts_email ON contacts (email);
- SQL> INSERT INTO contacts (first_name, last_name, email) VALUES('John','Doe','john.doe@sqlitetutorial.net');
- SQL> INSERT INTO contacts (first_name, last_name, email) VALUES('Johny','Doe','john.doe@sqlitetutorial.net');
- SQL> INSERT INTO contacts (first_name, last_name, email) VALUES('David','Brown','david.brown@sqlitetutorial.net'), ('Lisa','Smith','lisa.smith@sqlitetutorial.net');
- SQL> SELECT first_name, last_name, email FROM contacts WHERE email = 'lisa.smith@sqlitetutorial.net';
- SQL> EXPLAIN QUERY PLAN SELECT first_name, last_name, email FROM contacts WHERE email = 'lisa.smith@sqlitetutorial.net';
- 단계 3: 다중 컬럼 색인 생성
- SQL> CREATE INDEX idx_contacts_name ON contacts (first_name, last_name);
- SQL> EXPLAIN QUERY PLAN SELECT first_name, last_name, email FROM contacts WHERE first_name = 'John';
- SQL> EXPLAIN QUERY PLAN SELECT first_name, last_name, email FROM contacts WHERE first_name = 'John' AND last_name = 'Doe';
- SQL> EXPLAIN QUERY PLAN SELECT first_name, last_name, email FROM contacts WHERE last_name = 'Doe';
- SQL> EXPLAIN QUERY PLAN SELECT first_name, last_name, email FROM contacts last_name = 'Doe' OR first_name = 'John';
- SQL>
- 단계 4: 색인 확인
- SQL> PRAGMA index_list('contacts');
- SQL> PRAGMA index_info('idx_contacts_name');
- SQL> SELECT type, name, tbl_name, sql FROM sqlite_master WHERE type= 'index';
- 단계 5: 색인 제거
- SQL> DROP INDEX idx_contacts_name;
- SQL> PRAGMA index_list('contacts');
- SQL> PRAGMA index_info('idx_contacts_name');
- SQL> DROP INDEX idx_contacts_email;
- SQL> PRAGMA index_list('contacts');
- SQL> PRAGMA index_info('idx_contacts_email');
댓글 없음:
댓글 쓰기