728x90
반응형
728x90
반응형
# INDEX 인덱스 인덱스란 무엇인가? 인덱스는 데이터베이스 테이블 검색의 성능을 향상시키기 위한 자료 구조이다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들은 정렬 후 별도의 메모리 공간에 데이터의 물리적 구조와 함께 저장된다. 이 과정을 통해 인덱스가 생성되고 WHERE 조건으로 조회 시 옵티마이저에서 판단하여 생성된 인덱스를 탈 수 있다. 흔히 책의 맨 앞 또는 맨 뒤에 위치한 색인과 동일한 역할을 한다. 일반적으로 SELECT(조회) 성능만 향상된다고 착각하는 경우가 있는데, Update(수정), Delete(삭제) 성능도 향상된다. Update, Delete도 해당 대상 조회 후 수행하는 것이니,,, # 장점 인덱스의 가장 큰 특징은 데이터들이 정렬되어 있다는 점이다. WHERE 테..
# Dependency # Yaml # data.sql 테스트용 DB Mock 데이터 Insert resources > data.sql 파일 생성 후 insert 쿼리 추가 Mock 데이터는 mockaroo 등 외부 사이트에서 쉽게 생성 가능 https://www.mockaroo.com/ Mockaroo - Random Data Generator and API Mocking Tool | JSON / CSV / SQL / Excel Mock your back-end API and start coding your UI today. It's hard to put together a meaningful UI prototype without making real requests to an API. By mak..
# Config @EnableJpaAuditing Audit 기능 활성화를 위한 어노테이션 AuditorAware createdBy, modifiedBy 맵핑을 위해 Bean 등록 # Auditing Field Entity 공통 요소를 추출하여 소스 중복 제거 createdAt createdBy modifiedAt modifiedBy @EntityListeners(AuditingEntityListener.class) Entity가 DB로 load/persist 되기 전후에 커스텀 로직을 선언하는 인터페이스 AuditingEntityListener 특정 어노테이션을 탐색하여 Entity 변경 시 해당 값들을 자동으로 업데이트 @CreatedDate @CreatedBy @LastModifiedDate @La..
DB Partitioning 서비스의 크기, DB에 저장하는 데이터의 규모가 대용량이 되면서, 기존에 사용하는 DB 시스템의 용량(Storage)의 한계와 성능(Performance)의 저하가 발생했다. 즉, VLDB(Very Large DBMS)와 같이 하나의 DBMS에 너무 큰 Table이 들어가면 용량과 성능 측면에서 이슈가 발생했고, 이를 해결하기 위해 Table을 Partition이라는 작은 단위로 물리적 분할하여 관리하는 기법이 탄생했다. 논리적인 데이터 element들을 다수의 entity로 쪼개는 행위, 큰 Table이나 index를 관리하기 쉬운 단위로 분리하는 방법이다. 장점 성능 (Performance) 특정 DML과 Query의 성능을 향상시킨다. 대용량 Data Write 환경에서..
Explain MySQL 서버가 어떠한 쿼리를 실행할 것인가, 즉 실행 계획이 무엇인지 알고 싶을 때 사용하는 기본적인 명령어 단순한 SELECT 구문, 옵티마이저는 INDEX 중 KEY 인덱스를 사용하여 데이터에 접근했다. 총 3946건의 행을 가져왔고 INDEX와 WHERE 조건을 사용했다. ID 쿼리 처리 순서 SELECT_TYPE SIMPLE : UNION이나 SUB-QUERY가 없는 단순한 SELECT문 PRIMARY : SUB-QUERY를 사용할 경우 SUB-QUERY의 외부에 있는 첫 번째 QUERY / UNION을 사용할 경우 UNION의 첫 번째 SELECT QUERY UNION : UNION QUERY에서 PRIMARY를 제외한 나머지 SELECT문 DEPENDENT UNION : UN..
MyBatis 객체지향 언어인 JAVA와 SQL Based인 관계형 데이터베이스(RDBMS) 프로그래밍을 쉽게 처리하기 위한 Persistence Framework의 일종이다. 장점 사용이 간단하고, 생산성이 높다. 쿼리의 재사용과 코드의 분리가 수월하다. 유지보수에 용이하다. 복잡한 쿼리나 다이나믹 쿼리에 강하다. resultType, resultClass 등 VO가 아닌, 사용자가 정의한 DTO, MAP 등으로 맵핑하여 사용할 수 있다. 기본 설정 Maven 사용 시 pom.xml에 MyBatis Dependency 설정이 필요하다. org.mybatis mybatis-spring 1.3.2 개별 설정파일에 Property 설정 분리, 커넥션 풀 사용 설정이 필요하다 Mapper.xml 구성 SELE..