ORM (Object - Relational Mapping) / 데이터전환

2023. 2. 21. 18:54정처기 필기/3과목 - 데이터베이스 구축

ORM

1. 개요

- 객체와 관계형데이터베이스의 데이터를 연결하는 기술

- 독립적이어서 재사용 및 유지보수 용이

- 직관적, 간단

 

2. ORM 프레임워크

JAVA - JPA, Hibernate Eclipse Link 등

C++ - ODB, QxOrm 등

Python - Django, Alchemy 등

iOS - Core Date, Database Objects 등

 

3. ORM의 한계

- SQL 자동 작성 때문에 테스트가 필요

- 프로젝트가 크고 복잡하면 적용하기 어려워짐

- 기존 데이터베이스를 변환하는데 시간과 노력 필요

 


쿼리 성능 최적화

- 쿼리 성능 최적화 전, 성능 측정 도구인 APM을 사용해 최적화 할 쿼리를 선정해야 한다.

- 옵티마이저가 수립한 실행계획을 EXPLAIN 명령어를 통해 검토하고, SQL 코드와 인덱스 재구성

 

* 옵티마이저

  : 작성된 SQL이 가장 효율적으로 수행되도록 경로를 찾아주는 모듈

 

1.  RBO vs CBO

  RBO (RULE) CBO
최적화 기준 규칙 비용
성능 기준 개발자 SQL 숙련도 옵티마이저 알고리즘 예측 성능
특징 예측이 쉬움 예측이 어려움
고려사항 개발자의 규칙 이해도, 규칙 효율성 알고리즘 정확성

 

2 . SQL 코드 및 인덱스 재구성

* SQL 재구성

  : 서브 쿼리에 특정 데이터가 존재하는지 확인할 때는 EXISTS 활용

  : 실행 계획이 잘못되었다고 판단하는 경우에는 힌트(HINT)를 활용

 

* 인덱스 재구성

  : 인덱스 추가 및 변경은 다른 SQL에도 영향을 줄 수 있으므로 신중

  : 단일 인덱스로 쓰기나 수정 없이 일기로만 사용되는 테이블의 경우 IOT 구성 고려

 


데이터전환 계획서

- 구글 검색