이런 데이터베이스는 여러개가 존재할 수 있음!
Database는 여러 사람이 동시에 사용
Database를 사용하기 위해 지원하는 여러 프로그램이 존재
DBMS (Database Management System)
Database를 관리하는 시스템(소프트웨어)
DAMS의 종류
SELECT * FROM shopdb.membertbl; SELECT memberName FROM shopdb.membertbl;
- 이런식으로 사용 됨!
INSERT INTO shopdb.membertbl VALUES('iu', '아이유', '부산'); INSERT INTO shopdb.membertbl VALUES('iu', '아이유', '부산'); INSERT INTO shopdb.membertbl VALUES('iu', '아이유', '부산');
- 테이블을 하나 생성
CREATE TABLE shopdb.indexTBL( first_name VARCHAR(14), last_name VARCHAR(16), hire_date DATE ); -- 데이터를 입력해야함 (기존 데이터를 이용해서 데이터 삽입) SELECT first_name, last_name, hire_date FROM employees limit 500; -- limit를 사용하면 입력할 데이터의 값의 범위를 설정 할 수 있음! -- SELECT한 결과를 통으로 입력할 수 있음! INSERT INTO shopdb.indexTBL SELECT first_name, last_name, hire_date FROM employees limit 500; -- 실제 데이터가 들어갔는지 확인! SELECT * FROM shopdb.indextbl; -- first_name이 'Mary'인 사람 찾기 SELECT * FROM shopdb.indextbl WHERE first_name = 'Mary'; -- select를 이용하여 검색하여 특정 컬럼을 하나하나 찾아서 조회해 준다. -- 특정컬럼(first_name)에 index를 설정해서 B-Tree를 생성해보자 -- index 생성 CREATE INDEX idx_indexTBL_firstname ON shopdb.indextbl(first_name); -- index 설정 후 다시 검색해보자 SELECT * FROM shopdb.indextbl WHERE first_name = 'Mary'; -- 검색 결과가 전보다 훨씬 빨리 나오는 것을 확인 할 수 있다!
- 인덱스는 그렇담 많을수록 좋은게 아닌가? (여러 컬럼마다 index를 설정하면 좋지 않은가?)
- 인덱스를 설정하면 해당 컬럼의 데이터를 이용해서 B-Tree라는 자료구조 만듬
- 그런데 데이터가 추가되거나 변경되거나 삭제되면 이 B-Tree구조를 다시 만들어야함
- Overhead가 발생함!
- 그래서 전체적인 performance를 따져서 index를 설정해야함!