su3inni / cs-study

0 stars 0 forks source link

RDBMS #14

Open su3inni opened 10 months ago

su3inni commented 10 months ago

0. Database ?

데이터를 효율적으로 접근할 수 있도록 가공 및 저장한 것

1. DBMS

데이터베이스를 관리하기 위한 시스템 ex. ORACLE, MySQL, MSSQL ..

DBMS 유형

정규화 / 반정규화

  1. 검증 및 확정
    • 확장에 유연한지
    • 안정적이고 정확한지
su3inni commented 10 months ago

3. SQL

3-1. SQL 종류와 주의사항

DML : Data Manipulation Language

delete 와 truncate 차이 -delete from table은 실제 디스크 공간을 반납하지 않고 auto_increment 값도 유지하고 있으나 -truncate table은 drop&create 하는 것과 같으므로 디스크 공간을 반납하며 auto_increment 값도 초기화한다.

DCL : Data Control Language

Transaction Control

3-2. Join

UNION은 행을 결합 , JOIN은 열을 결합

명시 방법

Nested Loop Join

3-3. 실행계획

쿼리를 최적으로 실행하기 위해 각 테이블의 데이터가 어떤 분포로 저장되어있는지 통계 정보를 참조하여 최적의 실행 계획을 수립하는 작업이 필요하다.

옵티마이저

HINT

UNION / UNION ALL

3-4. Key & Index

KEY

INDEX

3-5. NULL

없거나 알려지지 않은 값을 의미하는 것으로 0이나 빈 문자열, 공백 문자열이 아니다. 꼭 IS NULL / IS NOT NULL 로 검색해야한다.

3-6. Character Set

Character Set 형 변환 후 Join 되는 컬럼간 Character Set 일치가 되는지 꼭 확인하기. 강제 형변환 Slow Query가 대량으로 발생하면 서비스 장애로 이어질 수 있음

su3inni commented 10 months ago

RDBMS 작업시 특히 주의해야하는 경우