본문 바로가기

전체 글

MySQL튜닝4) 실행계획 살펴보기2 1. Extra 컬럼 - SQL문을 어떻게 수행할 것인지에 대한 추가 정보를 보여주는 항목 - 부가 정보들은 세미클론(;)으로 구분하여 여러 가지 정보를 나열할 수 있으며 30여 가지 항목으로 정리할 수 있다. - MySQL에서는 extra에서 수행되는 정보가 모두 출력되지는 않으므로 참고하는 수준으로 해석하는 것이 좋다. # const row not found - 쿼리의 실행 계획에서 const 접근 방식으로 테이블을 읽었지만 실제로 해당 테이블에 레코드가 1건도 존재하지 않았을 경우 # distinct - JOIN시 필요한 것만 JOIN했고 중복된 값 제거한 경우 EXPLAIN SELECT DISTINCT d.dept_no FROM departments d, dept_emp de WHERE de.de.. 더보기
MySQL튜닝3) 실행계획 살펴보기1 1. 실행계획 (MySQL Explain) -SQL문으로 요청한 데이터를 어떻게 불러올 것인지에 관한 계획(경로) - MySQL 튜닝에서 가장 중요한 것은 쿼리와 스키마 최적화이다. 스키마 설계는 한번 진행되면 그 테이블을 사용하는 모든 쿼리에 영향을 주기 때문에 좀처럼 변경하기 힘들지만 쿼리는 해당 쿼리만 수정하면 되므로 변경하기 쉽다. Slow Query를 없애는 것은 성능을 향상 시키기 위한 매우 중요한 수단이므로 어플리케이션의 성능을 향상 시키고 싶다면 우선적으로 쿼리의 튜닝을 검토해봐야 한다. 성능 진단의 가장 첫걸음은 실행한 SQL이 DB에서 어떻게 처리되는 지를 파악하는 것이다. 사람이 이해할 수 있는 언어로 구성된 SQL을 실행하도록 DB에 명령을 내리면 DB는 내부적으로 SQL 파싱 (문.. 더보기
MySQL튜닝2) SQL 튜닝 용어 이해하기2 1. 오브젝트 스캔 종류 DB의 오브젝트 스캔 종류 테이블 스캔: 인덱스를 거치지 않고 테이블의 데이터로 직접 접근 인덱스 스캔: 인덱스를 통해 테이블 데이터에 접근 1. 테이블 스캔 / 테이블 풀 스캔 (Table Full Scan) 인덱스를 거치지 않고 테이블 데이터에 직행하여 처음과 끝까지 스캔하는 방식 WHERE 조건문을 기준으로 활용할 인덱스가 없는 경우, 전체 데이터 대비 대량의 데이터가 필요할 때 사용 대량의 데이터에 접근할 때 테이블 풀 스캔을 쓰면, 인덱스를 통한 랜덤 액서스가 발생하지 않아 이점이 있음 2. 인덱스 스캔 인덱스 풀 스캔 (Index Full Scan) 테이블에 접근하지 않고, 인덱스 내의 열만을 참조하여 처음부터 끝까지 스캔하여 데이터에 접근하는 방식 인덱스는 테이블의 .. 더보기
MySQL튜닝1) SQL 튜닝 용어 이해하기 1. MySQL 서버 = MySQL 엔진 + 스토리지 엔진 (물리 엔진 용어) MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 나눠볼 수 있다. MySQL 엔진은 클라이언트로부터 오는 요청 처리(요청된 SQL 문장을 분석, 최적화, ...)를 담당하고, 스토리지 엔진은 실제 데이터를 디스크 스토리지에 저장하거나 조회하는 부분을 담당한다. 1) MySQL 엔진 사용자가 요청한 SQL 문을 넘겨받은 뒤 SQL 문법 검사와 적절한 오브젝트 활용 검사를 하고, SQL 문을 최소 단위로 분리하여 원하는 데이터를 빠르게 찾는 경로를 모색하는 역할을 수행한다. 또한 스토리지 엔진으로부터 전달받은 데이터 중 불필요한 데이터는 제거하거나 가공 및 연산하는 역할을 한다. 즉, SQL 문의 시작 및 마무리 단계에.. 더보기
정규화 1. 정규화(Normalized)란? - 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스 - 정규화(Normalization)의 목표는 테이블 간 중복 데이터를 허용하지 않는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 2. 정규화의 장단점 1) 장점 - 데이터베이스 변경 시 이상 현상(Anomaly) 제거 - 저장 공간의 최소화 - 데이터 구조의 안정성 및 무결성 유지 - 데이터 삽입 시 릴레이션 재구성의 필요성 감소 - 효과적인 검색 알고리즘 생성 가능 2) 단점 - 릴레이션 간의 JOIN 연산 증가→ 질의에 대한 응답 시간 저하 3. 정규화를 하는 이유 - 이상 문제를 해결하기 위해 .. 더보기
파일 시스템 1. 관련 용어 1) File - 컴퓨터에서 의미가 있는 정보를 담은 논리적인 단위 - 비휘발성 보조기억장치(하드디스크)에 저장 - 운영체제는 다양한 저장 장치를 file 이라는 동일한 논리적 단위로 볼 수 있게 해줌 - 실행 파일과 데이터 파일로 존재 * 실행 파일 : 운영체제가 메모리로 가져와 CPU를 이용하여 작업하는 파일 (ex 윈도우 exe 파일. 유닉스는 따로 확장자 없음) * 데이터 파일 : 실행파일이 작업하는데 필요한 데이터를 모아놓은 파일 2) File attribute (= metadata) - 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 - 파일 이름, 유형, 저장된 위치, 접근 권한, 소유자 등 3) Directory - 파일의 메타데이터 중 일부를 보관하고 있는 일.. 더보기
페이징 교체 알고리즘 1. 가상 메모리 - 프로그램이 CPU에서 실행되려면 실행에 필요한 부분이 메모리에 올라와 있어야 한다. 또한 여러 프로그램이 동시에 수행되는 환경에서는 한정된 메모리 공간을 여러 프로그램이 조금씩 나누어서 사용하는데 운영체제가 적절히 프로세스에게 메모리를 할당해주어야 한다. - 운영체제는 CPU에서 당장 수행해야 하는 부분만 디스크에 올리고 나머지는 디스크의 swap 영역으로 놓았다가 다시 필요해지면 기존에 메모리에 있었던 부분과 교체하는 방식을 사용 - 이처럼 메모리의 연장 공간으로 디스크의 swap영역을 사용하게 된다면 물리적 메모리 크기에 대한 제약을 고려할 필요가 없어짐 -> 가상 메모리는 물리 메모리 크기의 한계를 극복하기 위해 나온 기술이며, 프로세스 전체가 메모리 내에 올라오지 않더라도 실.. 더보기
[스터디 4일차] 3 way handshake와 4 way handshake / OSI 7 계층 1. 3 way handshake와 4 way handshake 1) 관련 용어 - 프로토콜 : 서로 다른 하드웨어와 운영체제를 가지고 서로 통신을 하기위한 규칙 - IP : 인터넷 환경에서의 통신 규약. 패킷이라는 통신 단위로 데이터를 전달하며, 지정한 IP주소로 데이터를 전달함 비연결성과 비신뢰성의 특징을 가짐 - TCP : 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 연결 지향적 프로토콜 1.연결형 서비스로 가상 회선 방식을 제공 2.3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking 과정을 통해 해제 3.흐름 제어 및 혼잡 제어 4.높은 신뢰성을 보장 5.UDP보다 속도가 느림 6.전이중(Full-Duplex), 점대점(Point to Point).. 더보기