전송 계층
·
독서/네트워크
전송 계층에서는 Process to Process간의 logical communication을 담당하는 계층으로 응용 계층에서 보낸 데이터를 Segment(이하 세그먼트)로 포장하여 네트워크 계층으로 전달 또는 네트워크 계층에서 받은 Datagram(이하 데이터그램)를 Segment로 잘라 응용 계층으로 보내는 역할을 하게 된다. 전송 계층에서 지원하는 프로토콜은 2가지로 각각 다음과 같은 특징을 가지고 있다. TCP Reliable, In-order 혼잡 제어(congestion control) - 송신 버퍼를 제어 흐름 제어(flow control) - 수신 버퍼를 제어 연결 수립(connection setup) UDP Unreliable, Unordered 어떠한 기능은 없지만, 신속하게 전송하기 ..
실행 계획 분석
·
독서/데이터베이스
이 글에 포함된 모든 내용은 Real MySQL 8.0을 학습하며 작성된 내용입니다. EXPLAIN 실행 계획 분석은 SQL이 어떻게 처리되면서 어떤 최적화를 수행하는지, 어떤 인덱스를 사용하는지 등의 정보를 통해 쿼리가 최상의 상태에서 수행되고 있는지 분석하는 단계이다. id 칼럼 id 칼럼에는 SELECT 문장에서 1개 이사의 하위 SELECT 문자을 구분한 단위 쿼리에 부여되는 식별자 값이다. 이때 하나의 SELECT 쿼리의 테이블을 조인하면 조인되는 테이블의 개수만큼 실행 계획 레코드가 출력되지만 같은 id 값이 부여된다. 조인이 아닌 서로 다른 3개의 단위 SELECT 쿼리로 구성된 경우 각각을 식별할 수 있는 번호로 매겨지게 된다. 이때 주의할 점은 매겨진 번호가 테이블의 접근 순서를 의미하는..
프로그래머스 SQL JOIN
·
독서/데이터베이스
없어진 기록 찾기 select outs.animal_id as ANIMAL_ID, outs.name as NAME from ANIMAL_OUTS as outs left outer join ANIMAL_INS as ins on outs.animal_id = ins.animal_id where ins.animal_id is null 있었는데요 없었습니다. select ANIMAL_INS.animal_id, ANIMAL_INS.name from ANIMAL_INS inner join ANIMAL_OUTS AO on ANIMAL_INS.animal_id = AO.animal_id and ANIMAL_INS.datetime > AO.datetime order by ANIMAL_INS.datetime 오랜 기간 보..
프로그래머스 SQL IS NULL
·
독서/데이터베이스
이름이 없는 동물의 아이디 select animal_id from ANIMAL_INS where name is null order by animal_id 이름이 있는 동물의 아이디 select animal_id from ANIMAL_INS where name is not null order by animal_id NULL 처리하기 select animal_type, ifnull(name, 'No name') as name ,sex_upon_intake from ANIMAL_INS order by animal_id
프로그래머스 SQL GROUP BY
·
독서/데이터베이스
고양이와 개는 몇 마리 있을까 # (1) SELECT ANIMAL_TYPE as TYPE, COUNT(ANIMAL_TYPE) as COUNT FROM ANIMAL_INS WHERE ANIMAL_TYPE IN ('Dog', 'Cat') GROUP BY ANIMAL_TYPE # (2) SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) as count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE 동명 동물 수 찾기 SELECT t1.NAME, t1.COUNT FROM (SELECT NAME, COUNT(NAME) as COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME) as t..
프로그래머스 SQL SUM, MAX, MIN
·
독서/데이터베이스
최댓값 구하기 # Using filesort SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1 SELECT MAX(DATETIME) FROM ANIMAL_INS 최솟값 구하기 # -> Aggregate: min(animal_ins.`DATETIME`) -> Table scan on ANIMAL_INS (cost=10.25 rows=100) SELECT MIN(DATETIME) FROM ANIMAL_INS 동물 수 구하기 SELECT COUNT(1) FROM ANIMAL_INS 중복 제거하기 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS