2.1 장
물리엔진과 오브젝트 용어
1) DB 엔진 용어
2) SQL 프로세스 용어
3) DB 오브젝트 용어
사용자 > SQL 문 실행(데이터 요청) > (MySQL 엔진 : parser) 문법에러 있는지/DB에 존재하는 테이블 대상으로 SQL문 작성했는지 등 다양한 문법 및 구문으로 검사 > (MySQL 엔진 : optimizer) 사용자가 요청한 데이터를 빠르고 효율적으로 찾아가는 계획 수립 > (스토리지 엔진 ) 해당 계획 토대로 스토리지 엔진에 위치한 데이터까지 찾아감 > 해당 데이터를 MySQL 엔진으로 전달 > (MySQL 엔진) 전달된 데이터에서 불필요한 부분 필터링 > 사용자에게 최종 결과 알려줌
로우 수가 많아지면 데이터 접근하는 과정에서 시간 오래 소요 가능 > 파티셔닝 사용하면 성능 향상
중복되지 않는 값 / 2개 로우를 조합해 기본키 만들 수 있음 / 인덱스 역할도 수행
기본키 = 클러스터형 인덱스
기본키와 동일한 인덱스 = 불필요한 공간 낭비 + 정렬의 오버헤드 발생 -> 삭제해야함!!
키값으로 데이터 위치 식별/데이터 접근 속도 높임/효과적인 조회
제한된 정보 제공 가능 -> 보안성
학생_뷰 데이터 변경 <-> 학생 데이터 변경 영향 있음
CREATE VIEW 학생_뷰 AS
SELECT 학번,이름 FROM 학생;
예제) 중복이 없는 열을 고유 인덱스로 생성 = 이미 중복이 없는데 불필요한 중복 검증 과정
ALTER TABLE 학생 ADD UNIQUE INDEX 연락처_인덱스(연락처);
ALTER TABLE 학생 ADD INDEX 이름_인덱스(이름);
clustered vs non-clustered 는 인덱스 구조