본문 바로가기

database32

[DB 15편] 정규화, 비정규화 목차는 DB 목차 에 있습니다. 공부한 내용을 정리할 목적으로 작성했습니다. [DB 15편] 정규화, 비정규화 정규화 RDB 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화 라고 합니다. RDB 정규화의 목표는 이상이 있는 관계를 작고 잘 조직된 관계를 생성하는 것에 있습니다. 위와 같이 정규화를 통해 테이블을 정비하고 이를 통해 RDB 나머지 부분들로 전파되게 하는 것이 목표입니다. 정규화를 잘못지킬 경우 이상현상이 발생하며, 갱신, 삭제, 삽입 이상이 있습니다. 중복을 줄인다는 것은 데이터를 될 수 있으면 하나의 저장공간에서 관리한다는 의미이며, 데이터를 조회하고 싶을 때 원본 데이터를 조회해야한다는 것입니다. 원본 데이터를 수정하는 것만으로 관련있는 테이블들의 데이터도 같이 변경되겠.. 2023. 1. 10.
[DB 14편] MySQL Index Hints 정리 목차는 DB 목차 에 있습니다. [DB 14편] MySQL Index Hints 정리 예시에 사용된 DDL, DML MySQL Index Hints 인덱스 힌트는 옵티마이저에게 인덱스를 어떻게 선택해야하는지에 대한 정보를 주는 옵션입니다. IGNORE 해당 인덱스를 사용하지 않도록 옵티마이저에게 정보를 전달합니다. IGNORE INDEX 예시 쿼리 # 힌트 사용 전 explain format = tree select tm.* from team t, team_member tm where tm.team_id = t.team_id and tm.name = 'member-1' and t.team_id = '1' ; # 힌트 사용 explain format = tree select tm.* from team t .. 2022. 11. 29.
[DB 13편] MySQL 옵티마이저 힌트 정리 목차는 DB 목차 에 있습니다. [DB 13편] MySQL 옵티마이저 힌트 정리 아래 예시에 사용된 DDL, DML 옵티마이저 힌트 옵티마이저를 컨트롤 할 수 있는 방법 중의 하나이며, 개별 구문내에서 사용 가능합니다. /*+ … */ 로 사용가능합니다. ex) select /*+ … HINT */ 사용할 때, 주의사항으로는 테이블에 alias 가 있을 경우 alias 명을 써줘야 합니다. JOIN_FIXED_ORDER 조인순서를 강제합니다. 사용법은 select /*+ JOIN_FIXED_ORDER () */ 이며, 쿼리에 입력된 순으로 조인순서를 강제합니다. HINT 적용 전 쿼리 및 실행계획 조인 순서가 team, team_member, member_addr 순으로 조인된 것을 알 수 있습니다. #.. 2022. 11. 29.
[DB 12편] MySQL 실행계획 2탄 (실행계획 상세) 목차는 DB 목차 에 있습니다. [DB 12편] MySQL 실행계획 2탄 (실행계획 상세) MySQL 실행계획 1탄 과 연결됩니다. 예시에 사용된 테이블 DDL, DML TEAM : TEAM_MEMBER = 1 : n # DDL CREATE TABLE `team` ( `team_id` bigint NOT NULL AUTO_INCREMENT, `team_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`team_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci CREATE TABLE `team_member` ( `team_member.. 2022. 11. 28.