Engineering
-
[Real MariaDB] 최적화 - 정렬의 처리 방식Engineering/Database 2021. 9. 4. 17:13
정렬의 처리 방식 쿼리에 order by 가 사용되면 반드시 다음 3가지 방식 중 하나로 정렬이 처리된다. 일반적으로 밑쪽에 있는 정렬 방법으로 갈수록 처리는 점점 느려진다. 정렬 처리 방법 실행 계획의 Extra 코멘트 인덱스를 사용한 정렬 별도의 내용 표기 없음 드라이빙 테이블만 정렬 (조인이 없는 경우 포함) "Using sort"가 표시됨 조인 결과를 임시 테이블로 저장한 후, 임시 테이블에서 정렬 "Using temporary; Using filesort"가 같이 표시됨 인덱스를 사용한 정렬 반드시 ORDER BY에 명시된 컬럼이 제일 먼저 읽는 테이블(조인이 사용된 경우 드라이빙 테이블)에 속하고, ORDER BY의 순서대로 생성된 인덱스가 있어야 한다. WHERE 절에 첫 번째 읽는 테이블의..
-
[HTTP 완벽 가이드] 2장. URL과 리소스Engineering/Network 2021. 9. 4. 04:27
URL 문법 ://:@:/;?# 스킴: 사용할 프로토콜 스킴은 주어진 리소스에 어떻게 접근하는지 알려주는 중요한 정보다. URL을 해석하는 애플리케이션이 어떤 프로토콜을 사용하여 리소스를 요청해야 하는지 알려준다. 호스트와 포트 리소스를 호스팅하고 있는 장비와 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디에 있는지에 대한 정보를 제공한다. 호스트는 접근하려고 하는 리소스를 가지고 있는 인터넷상의 호스트 장비를 가르키고, 포트는 서버가 열어놓은 네트워크 포트를 가르키낟. TCP를 사용하는 HTTP는 기본 포트로 80을 사용한다. 사용자 이름과 비밀번호 서버가 자신이 가지고 있는 데이터에 접근을 허용하기 전에 요구하는 사용자 이름과 비밀번호이다. ftp://ftp.prep.ai.mit.edu/pub/..
-
[HTTP 완벽 가이드] 1장. HTTP 개관Engineering/Network 2021. 9. 3. 03:55
HTTP (Hypertext Transfer Protocol) HTTP는 JPEG, HTML, Text, MPEG, WAV 음성 파일 등 다양한 멀티미디어 데이터를 신뢰성 있게 전송할 수 있는 프로토콜이다. 미디어 타입 인터넷은 다양한 종류의 데이터 타입을 다루기 때문에, HTTP는 웹에서 전송되는 객체에 대해 MIME 타입이라는 데이터 포맷을 지정한다. MIME(Multipurpose Internet Mail Extensions, 다목적 인터넷 메일 확장) 웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙인다. 웹브라우저는 서버로부터 객체를 돌려받을 때, 다룰 수 있는 객체인지 MIME 타입을 통해 확인한다. MIME 타입은 '/'로 구분된 primary object type과 specific..
-
[Real MariaDB] 최적화 - 풀 테이블 스캔, ORDER BY, 소트 버퍼Engineering/Database 2021. 8. 30. 03:27
풀 테이블 스캔 테이블의 데이터를 인덱스를 사용하지 않고 처음부터 끝까지 읽어서 작업을 처리한다. MariaDB의 옵티마이저는 다음과 같은 조건이 일치할 때 주로 풀 테이블 스캔을 선택한다. 테이블의 레코드 건수가 너무 작아서 인덱스를 통해서 읽는 것보다 풀 테이블 스캔을 하는 편이 더 빠른 경우(일반적으로 테이블이 페이지 1개로 구성된 경우) WHERE 절이나 ON 절에서 인덱스를 이용할 수 없는 경우 인덱스 레인지 스캔을 사용할 수 있는 쿼리라고 하더라도 옵티마이저가 판단한 조건 일치 레코드 건수가 너무 많은 경우 (인덱스의 B-Tree 를 샘플링해서 조사한 통계 정보 기준) max_seeks_for_key 변수를 작게 설정하여 풀 테이블 스캔보다 인덱스 레인지 스캔을 더 선호하도록 유도할 수 있다..