목록DB (6)
ultra_dev
SQL 쿼리의 개념적인 실행 순서FROM(+JOIN)WHEREGROUP BYHAVINGSELECTORDER BY나는 당연히 무조건 위에 순서대로 작동하는 줄 알았지만 그게 아니란 걸 깨달았다..!! => 위의 순서는 개념적인 실행 순서일 뿐, 실제 데이터베이스에서는 옵티마이저를 사용해서 최적의 실행 계획을 세우기 때문에 위와 순서가 달라질 수 있다!!! ex) 많은 테이블과 Join 해야 하는 경우 row가 많다면 당연히 부하가 갈테고 만약 Where절에서 인덱스가 걸린 컬럼을 조건으로 하는 경우, 옵티마이저가 이를 감지하고 Where절을 먼저 처리해서 인덱스를 이용한 필터링 작업을 먼저 수행할 수도 있음!! => 최근에 이와 관련된 질문을 받았고, 뒤늦게 기존 작성 내용이 틀렸다는 걸 알게 되어 수정..
문제: 사내에서 docker로 postgreSQL을 띄우고 로컬에서 DB에 연결해서 프로젝트를 개발중이었다. 그런데 해당 postgreSQL에 연결된 다른 테스트용 솔루션들이 에러를 뱉기 시작했다. 500에러 발생..! 로그를 확인해서 원인을 찾아보니 too many connections ~ 즉, 해당 PostgreSQL의 커넥션 풀이 부족하다는 것! 데이터베이스의 session을 확인해보니 was 하나 당 db connection이 default로 10개 잡혀 있는데 여러명이 해당 PostgreSQL과 연결해서 로컬에서 개발을 진행하다보니 postgres default max connection인 100개가 넘어가면서 postgres db에 접근을 못하게 되면서 발생하는 문제였다. 해결: docker가..
사내 서버 도커에서 돌고 있는 postgreSQL dump 뜨기 흐름 1. 서버 원격 접속 (ssh)2. Docker안에서 돌아가는 postgreSQL 접속 3. Docker 내 Dump 파일 생성 4. Docker 밖으로 끄집어내기 5. 로컬로 옮기기 1. 서버 원격 접속 (ssh)ssh [아이디@IP]비밀번호 입력 2. Docker안에서 돌아가는 postgreSQL 접속sudo docker ps - docker ps 명령어를 통해 postgreSQL 컨테이너 ID를 알아낸다. sudo docker exec -it 컨테이너ID /bin/bash - 이후 docker postgreSQL에 접속 3. Docker 내 Dump 파일 생성pg_dump -U 유저 -d 데이터베이스 -f 파일이름.sql..
조인이란💡 두개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것 회원 테이블(이름, 주소, 전화번호… ), 구매 테이블(물건, 가격…) 두 테이블을 엮어서 하나의 배송을 위한 정보(이름, 주소, 물건)를 추출하는 것이 대표적인 조인 내부 조인 (Inner join) 두 테이블을 연결할 때 내부 조인이 가장 많이 사용됨. 내부 조인의 형식 SELECT FROM INNER JOIN -- INNER JOIN은 'INNER' 생략가능 ON [WHERE 검색 조건] SQL 블랙핑크(BLK)가 구매한 물건의 목록에 회원정보까지 합쳐서 보려면? SELECT * FROM buy JOIN member ON buy.mem_id = member.mem_id WHERE buy.mem_id = 'BLK'; 각 회원은 구매..