DB12 [DB/SQL] 중첩 질의 보다 JOIN Query가 더 효율적인 이유 데이터베이스를 설계하고 SQL 쿼리를 작성할 때, 동일한 결과를 얻기 위해 중첩 질의(Subquery)와 JOIN 쿼리를 사용하는 두 가지 방법을 고민하는 경우가 있다. 이 두 방식 중 대량의 데이터셋이나 여러 테이블 간의 연결이 많은 경우에 JOIN 쿼리가 더 효율적으로 작동하는 이유를 살펴보자. 1. 중첩 질의(Subquery)란?중첩 질의는 SQL 쿼리 안에 또 다른 쿼리가 중첩된 형태로, 주로 결과 값을 필터링하거나 계산하는 데 사용된다. SELECT nameFROM employeesWHERE department_id = ( SELECT id FROM departments WHERE name = 'HR'); 위 쿼리는 ‘HR’ 부서의 ID를 먼저 찾은 뒤, 해당 ID에 속한 직원.. 2024. 10. 27. [Redis] Refresh Token Redis에 넣어보기 1. DB에 저장로그인: http://localhost:8080/oauth2/authorization/naver결과: user db에 회원 정보 저장, refreshToken db에 refresh token 저장, access token redirect(json, url)로그아웃: http://localhost:8080/users/logout헤더: access token 담아 요청결과: refreshToken db에서 refresh token 삭제 -> refresh token으로 access token 재발급 받지 못하도록 방지!!회원탈퇴: http://localhost:8080/users/me헤더: access token 담아 요청결과: user db에서 회원정보 삭제 아래 로직과 대조되는 부분만 첨.. 2024. 7. 8. [Redis] FCM Token Redis에 넣어보기 1. DB에 FCM Token 저장하는 기존 방식@PostMapping("/generate")public ApiResponse tokenToFront( @RequestBody UserReqDto userReqDto // email, username, nickname, provider) { // 1. 받은 email 가지고 회원가입 되어있는 사용자인지 판단 Boolean isMember = userService.checkMemberByEmail(userReqDto.getEmail()); // 2. jwt 생성 String accessToken = ""; String refreshToken = ""; // 3. 기존 회원인지 판별 -> 튜토리얼 때문 Stri.. 2024. 7. 8. Redis란? Remote Dictionary Server Redis; Remote Dictionary Server;1. 소개Redis는 오픈 소스 인메모리 데이터 저장소로, 주로 속도와 성능에 중점을 둔 키-값 저장소이다.데이터의 Scale out을 위해 Consistent Hashing을 활용한 분산 시스템에서 널리 사용되고 있다.특징영속성을 지원하는 In-Memory 데이터 저장소데이터를 disk에 저장할 수 있음 → 서버가 내려가더라도 disk에 저장된 데이터를 읽어서 메모리에 로딩을 함저장방식RDB(Snapshotting): 순간적으로 메모리에 있는 내용을 DISK에 전체를 옮겨담는 방식AOF(Append On File): redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태읽기 성능 증대를 위한 서버 측 복제를 지원문.. 2024. 7. 8. 이전 1 2 3 다음