Free Lines Arrow
본문 바로가기
728x90

DataBase60

[DB] LIKE 와 INDEX LIKE 와 INDEX 테이블에 row 가 많은 경우 우리는 인덱스를 걸어주어 조회 속도를 높인다. LIKE 같은 경우 조건에 따라 인덱스를 타는 경우도 있고 안타는 경우도 있다. 어떤 경우에 인덱스를 타고 안타는지 확인해보자. 조건에 따른 인덱스 타는 여부 인덱스를 타는 경우 WHERE name LIKE '안' - 문자가 일치 하는 데이터 검색 WHERE name LIKE '안%' - 문자의 시작과 일치하는 데이터 검색 인덱스를 타지 않는 경우 WHERE name LIKE '%안%' - 문자가 포함되는 데이터 검색 WHERE name LIKE '%안' - 해당 문자로 끝나는 데이터 검색 WHERE name LIKE %안% 왜 인덱스를 안탈까? 요인은 INDEX 의 자료구조가 B*TREE 이다. 인덱스를.. 2023. 2. 10.
[DB] Index 기본 인덱스 란? 원하는 데이터를 쉽게 찾을수 있도록 돕는 자료구조이다. 검색 조건에 부합하는 데이터를 효과적으로 빠르게 검색 할 수 있도록 돕는다. 하지만 인덱스 효율이 나쁘면 오히려 느릴 수 있다. 1개의 테이블에 인덱스가 많은면 CUD 작업시 부하가 발생 할 수 있다. - 이유는 저장 하거나 업데이트 할때 인덱스 값을 조정 해줘야 하기 때문이다. 인덱스의 자료구조 Hash 해시는 탐색 시간이 빠르지만 자료를 저장 할때 정렬이 되지 않는다. 당연한것이 해쉬 자료구조 이기 때문이다. DB 에서는 특정 범위를 검색하는 경우가 있는데 이에 적절하지 않아서 잘 사용하지 않는다. B * Tree DB 에서 가장 많이 사용하는 인덱스 구조이다. B * Tree 인덱스 란? DBMS 에서 사용되는 가장 일반적인 인덱스.. 2023. 2. 9.
[Redis] Redis 란? Redis 란? 레디스는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다. 캐시형으로 많이 사용한다. - 예를 들어 하루치의 통계를 보여 줄때 쿼리가 복잡하다면 한번 조회후 redis 에 키값으로 저장하면 또다시 복잡한 쿼리를 수행할 필요없이 Redis 에서 바로 가져오면된다. Redis 특징 in-memory 를 사용한다. 인메모리 데이터 셋을 사용하여 최고의 성능을 낸다. 다음과 같은 목적에 쓰인다. Database cache message broker streaming engine Sentinel 및 Redis Cluster를 통한 자동 파티셔닝을 통해 고가용성을 제공한다. 비동.. 2023. 2. 8.
[JPA] AttributeConverter AttributeConverter 사용이유 Enum 값을 DB 에 저장할 경우 다음과 같은 상황이 생길 수 있다. - Enum 값이 길때 간단한 코드로 값을 만들어 저장 하는 것이다. - Enum 값을 코드로 저장할 경우 컬럼이 많을 경우 문제가 생길수 있다. 백엔드 개발을 할때 java 와 DB 사이에 값을 변환할때 필요하다. - 아래와 같이 저장하고 불러 올때 사용한다. Java Enum DB 년 Year y 월 Month m 일 Day d AttributeConverter Enum 값을 Code 로 저장할수 있게 해주는 Interface 이다. 그렇다 Interface 이면 직접 구현을 해줘야한다. AttributeConverter interface 구조 public interface Attrib.. 2022. 4. 2.
728x90
반응형