SQL
-
[Redis] 레디스의 개념 및 특성 (1)SQL 2023. 1. 31. 16:39
(한국어 버전으로 제공되는 redisgate.kr 참고) redis 란? : 데이터를 메모리에 저장하는 캐시 시스템 (인메모리 데이터베이스) - 빠름 : 자료구조 지원 (key - value 타입의 저장소) : 장애 방지를 위한 영속성 지원 : 읽기 성능 증대를 위한 서버 측 복제 지원 : 쓰기 성능 증대를 위한 클라이언트 측 샤딩 지원 : 다양한 데이터형 지원 (문자열, 리스트, 해시, 셋, 스트림 등) 고성능 key-value 방식의 데이터 저장소로서 다양한 형식의 데이터를 지원하는 NoSQL Redis 의 영속성 : 지속성을 보장하기 위하여 데이터를 disk 에 저장할 수 있음. 서버가 다운 되더라도 저장된 데이터를 읽어 메모리에 로딩하는 방식 RDB (redis database backup) 특정..
-
[Mysql] Database LOCKSQL 2023. 1. 3. 11:00
1. Pessimistic Lock 실제 데이터에 lock 을 걸어서 정합성을 맞추는 방법 exclusive lock을 걸어 lock이 해제되기 전까지는 다른 트랜잭션에서 접근이 불가함 ! 주의 : 데드락이 걸릴 수 있다 ! select stock0_.id as id1_0_, stock0_.product_id as product_2_0_, stock0_.quantity as quantity3_0_ from stock stock0_ where stock0_.id=? for update -> pessimistic Lock 을 사용했을때 쿼리로 for update 부분이 lock 을 걸고 데이터를 획득했음을 의미 장점 : 충돌이 빈번하다면 Optimistic Lock 보다 성능 효율적 단점 : 성능 감소 우려..
-
[Postgres] 계층형 쿼리 구현 예시SQL 2021. 5. 24. 14:26
with recursice dep_list(dept_cd, dept_nm, dept_depth, path, cycle) as ( select bas.dept_cd, bas.dept_nm, bas.dept_depth, array[bas.dept_cd::text], // 지나온 path 를 다시 탐색하지 않기 위해 저장 false // 성능상 추가. 없어도 쿼리 실행에는 상관無 from dept_bas bas where bas.up_dept_cd ='ROOT' // 시작 조건 and bas.use_yn ='Y' UNION ALL select dep1.dept_cd, dep1.dept_nm, dep1.dept_depth, array_append(dep2.path, dep1.dept_cd::text), dep1..
-
[SQL] case when WHERE 절에 적용 예시(if/else)SQL 2021. 4. 6. 16:29
* 조건 절에 case when 문법 적용하는 방법 Ex) TDAY_DATE 가 널이면 상관이 없으나 널이 아닐 경우 CRET_DT 보다 커야할 때 WHERE 1=1 AND (CASE WHEN TDAY_DATE IS NOT NULL THEN CRET_DT ELSE 1 END) > (CASE WHEN TDAY_DATE IS NOT NULL THEN TDAY_DATE ELSE 1 END) 문자인 경우 THEN '' = THEN '' 로 해도 됨