DB
-
[MySQL/Java] DB 쿼리 성능개선 (1) test용 mock/bulk data 삽입 방법DB/MySQL 2023. 6. 26. 22:09
Gotcha 프로젝트 리팩토링을 하면서 DB 성능 개선에 도전해보고 싶다는 목표! 굉장히 조그마한 프로젝트였기 때문에 쿼리를 신경 쓰지 않고 작성했는데, 데이터가 몇십, 몇백만 단위로 쌓이게 된다면 문제가 발생할 수 있을 것 같다는 생각이 들었다. 그래서 쿼리 성능 테스트를 진행해보기로 했다. 하지만.. 대량 데이터를 넣는 것부터 배울게 아주 많군요...! 우선 테스트하고자 하는 코드를 간략화 하면 아래와 같았다. @CustomSpringBootTest @AutoConfigureMockMvc class ParticipantControllerTest { @Autowired EntityManager em; @Autowired MockMvc mockMvc; @Autowired ObjectMapper obje..
-
[DB] 저장 프로시저 (Stored Procedure)의 개념과 예시DB/DB Basic 2023. 6. 12. 17:11
저장 프로시저 (SP, Stored Procedure)란? : 준비된 SQL문으로, 재사용이 가능하도록 저장한 SQL문을 의미 - 매개변수를 설정할 경우, 매개변수의 값에 따라 SQL문을 실행시킬 수 있음 사용 이유 1. 성능 향상 - SP 생성 이후, 첫 실행을 하게 되면 최적화, 컴파일 단계를 거쳐 그 결과를 캐시(메모리)에 저장 - 이 후 해당 SP 실행시 캐시(메모리)에 있는 결과를 가져와 사용하므로 실행 속도가 향상됨 - 실행 계획이 이미 최적화되어 있기 때문에, SQL문을 매번 구문 분석하고 최적화하는 오버헤드를 줄일 수 있음 2. 유지보수 및 재사용성 향상 - SP 사용시 복잡한 로직과 비즈니스 규칙을 DB내에 캡슐화 할 수 있음 - 여러 어플리케이션이나 스크립트에서 동일한 SP 호출할 수 ..
-
[DB] 스키마(Schema) 개념 및 계층DB/DB Basic 2023. 5. 18. 11:45
스키마(Schema)란? : 데이터베이스의 구조(개체, 속성, 관계)화되는 방식을 정의 - DBMS이 주어진 설정에 따라 Schema를 생성하고 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터 스키마를 참조하여 명령을 수행 - 테이블 이름, 필드, 데이터 유형, 엔티티 간의 관계 등 논리적 제약조건이 포함됨 스키마의 3계층 외부(서브) 스키마 (External Schema) = 사용자 뷰 - 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조 정의 - 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있으며 하나의 외부 스크미라를 여러 개의 응용 프로그램이나 사용자가 공용 가능 - DML을 사용해 데이터 이용 개념 스키마 (Conceptual Schema..
-
[DB] 데이터 모델의 종류와 구성 요소 (엔티티, 속성, 관계)DB/DB Basic 2023. 5. 17. 16:25
데이터 모델이란? : 현실 세계 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형 - 데이터 모델은 데이터 구조를 결정 - 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약 조건 등을 기술하기 위한 개념적 도구 데이터 모델의 유형 1. 개념적 데이터 모델 - 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현 - 구축하고자 하는 업무 모델의 핵심 데이터 구조를 큰 그림으로 구성하는 것 - "빅 픽쳐" 모델이라고도 불리며 전반적인 구조와 콘텐츠를 나타내지만 데이터 계획의 세부사항은 표시하지 않음 - 데이터 모델링의 시작점으로 다양한 데이터세트와 조직 전체의 데이터 흐름을 식별 - 논리 및 물리 모델 개발에 대한 상위 레벨의 청사진 2. 논리적 데이터..
-
[DB] DB 개념, 특징과 DBMS 종류 (RDBMS, NO SQL)DB/DB Basic 2023. 5. 17. 13:24
DB(Database) 란? : 데이터의 집합. 여러 사람이 공유하여 사용할 목적으로 통합 관리하는 데이터의 집합을 의미. - 데이터: 현실 세계에서 사건이나 사물의 특징을 관할하거나 측정하여 기술하는 가공되지 않은 사실이나 값 - 정보: 의미있고 쓸모 있는 내용으로 가공하여 체계저으로 조직한 데이터 → 데이터베이스는 단순한 데이터 저장소가 아닌, SQL 등으로 세밀히 제어가 가능하며, 정보를 통합하여 구조적이며 효율적으로 데이터를 저장 관리할 수 있음 DB의 데이터 특징 1. 통합된 데이터 (Integrated Data) - 중복된 정보를 통합하여 자료의 중복을 최소화한 데이터의 모임으로 구성 - 데이터의 일관성 유지, 관리비용 감소 가능 2. 저장된 데이터 (Stored Data) - 컴퓨터가 접근 ..