본문 바로가기

데이터베이스8

Redis Spring에서 사용 정리 프로젝트를 하면서 redis를 사용하였는데 그걸 정리 하였습니다. RedisConfig.java import com.group.Bmart.domain.item.service.response.ItemRedisDto; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connectio.. 2024. 3. 13.
[MySQL] 프로시저 만들기(DECLARE, SET, IN, IF, ELSEIF 등) 사실 프로시저는 처리성능과 재사용면에서 좋지 않다고 합니다. 제한된 유연성: 프로시저는 특정 작업을 수행하기 위해 작성된 코드 블록입니다. 이러한 프로시저는 보통 한 가지 목적을 위해 설계되어 있으며, 다른 작업에 대한 재사용성이 제한될 수 있습니다. 코드 중복과 일관성 문제: 프로시저를 재사용하기 위해 여러 곳에서 복사 및 붙여넣기를 하면 코드 중복이 발생할 수 있습니다. 이는 유지보수와 일관성에 문제를 일으킬 수 있습니다. 한 프로시저를 수정하면 해당 프로시저를 사용하는 모든 곳에서 수정해야 하므로 코드의 일관성을 유지하기 어려울 수 있습니다. 반대로 프로시저를 사용해야 하는 이유가 여러가지 존재한다. 코드의 재사용성: 프로시저는 한 번 작성하고 필요할 때마다 호출하여 사용할 수 있습니다. 코드의 추.. 2023. 6. 14.
데이터베이스별 랜덤으로 레코드 가져오기 쿼리 정리 Select a random row with MySQL: SELECT column FROM table ORDER BY RAND() LIMIT Select a random row with PostgreSQL: SELECT column FROM table ORDER BY RANDOM() LIMIT 1 Select a random row with Microsoft SQL Server: SELECT TOP 1 column FROM table ORDER BY NEWID() Select a random row with IBM DB2 SELECT column, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY Select a random record wit.. 2022. 11. 9.
[MySql] 효과적인 인덱스 설계 인덱스(index)는 즉 색인이다 테이블의 동작속도(조회를) 높여주는 자료구조이다. 인덱스로 데이터의 위치를 색인 처럼 빠르게 찾아주는 역할이다. select를 빠르게 하는 대신 update, delete, insert를 희생한다. 물론 update, delete 라고 다 희생되는게 아니라 update, delete를 하기 위해 해당 데이터를 조회하는 인덱스가 있으면 빠르게 된다. 만약 인덱스를 사용하는 테이블에서는 update, delete를 하게 되면 가능한 인덱스로 지정된 컬럼을 기준으로 진행하는게 좋다 인덱스 컬럼 기준 만약 1개의 컬럼만 인덱스를 걸어야 한다면, 해당 컬럼은 카디널리티(Cardinality)가 가장 높은 것을 잡아야 한다는 점입니다. 카디널리티(Cardinality)란 해당 컬럼.. 2022. 11. 7.