쿼리 작성 및 최적화
·
독서/데이터베이스
SELECT INSERT, UPDATE의 경우 레코드 단위로 작업을 하기 때문에 성능상 문제가 되는 경우가 별로 없지만, SELECT의 경우 여러 테이블로부터 데이터를 불러와 조합해서 처리하기 때문에 테이블을 어떻게 읽을 것인가에 많은 주의가 필요하다. 인덱스를 사용하기 위한 기본 규칙 인덱스는 B-Tree에 아무런 변환 없이 정렬된 상태로 저장되기 때문에 인덱스를 사용하려면 기본적으로 인덱스 된 칼럼의 값을 그대로 사용해야 한다. 만약 MD5() 함수와 같이 해시 값을 만들어 비교하는 경우 미리 계산된 값을 저장하도록 가상 칼럼(Virtual Column)을 추가하고 그 칼럼에 인덱스를 생성하거나 함수 기반의 인덱스를 사용해야 한다. 값을 변환하지 않는다는 규칙은 WHERE절에서 비교하는 두 값의 데이..
백준 2110 공유기 설치
·
독서/알고리즘
이분 탐색을 활용한 매개변수 탐색 알고리즘 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import java.util.stream.Collectors; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringToken..
전송 계층
·
독서/네트워크
전송 계층에서는 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