본문 바로가기

전체 글

(80)
[MYSQL] 기본 실행 계획 분석 - 2 MYSQL SQL문의 기본실행계획분석: https://juboxer.tistory.com/130  [MYSQL] 기본 실행 계획 분석 - 1MYSQL SQL문의 기본실행계획분석: EXPLAIN 명령어를 통해 SQL의 실행계획을 분석할 수 있다. 이를 통해 SQL문이 효율적으로 혹은 비효율적으로 수행되지 않는지, 비효율적으로 수행된다면 어떻게 튜닝juboxer.tistory.com 1. EXPLAIN 실행계획 분석을 통해서 SQL 튜닝을 어떻게 접근 할지 분석한다. 2. 실행계획 어려웠던 부분 재확인 (* 스토리지 엔진, MySQL 엔진, 필터링 데이터 .. 등)  1. 실행계획 상 스토리지 엔진으로부터 데이터를 조회하는 방식이 효과적인 방법인가?KEY : PRIMARY , TYPE : RANGE이므로, ..
함수형프로그래밍 - 1. 제네릭 함수 함수형 프로그래밍이란?: 함수형 프로그래밍은 수학적 함수 개념에 기반을 두고 있다. 주로 상태변이와 가변 데이터를 피하고, 함수의 조합과 순수성을 강조한다. 주요 특징은 아래와 같다.순수함수 : 함수는 외부 상태를 변경하지 않는다. → 같은 입력에 대해 항상 같은 출력을 반복한다.불변성 : 데이터는 변경할 수 없으며, 데이터를 수정하는 데신 새로운 데이터를 생성한다.고차함수 : 함수는 다른 함수를 인자로 받거나, 함수를 반환할 수 있다.함수의 합성 : 여러 개의 작은 함수들을 조합하여 더 복잡한 기능을 구현한다.1. 함수형 인터페이스,Optional, 람다식, 스트림 API, 제네릭 함수 익숙해야 함. 2. 특히 스트림 API 사용 잘 할 줄 알아야 함.제네릭, 스트림, 람다식 .. 부터 익히도록 한다...
[MYSQL] 기본 실행 계획 분석 - 1 MYSQL SQL문의 기본실행계획분석: EXPLAIN 명령어를 통해 SQL의 실행계획을 분석할 수 있다. 이를 통해 SQL문이 효율적으로 혹은 비효율적으로 수행되지 않는지, 비효율적으로 수행된다면 어떻게 튜닝을 해야 하는지 감을 잡을 수 있다.EXPLAINSELECT 사원.사원번호, 급여.연봉FROM 사원, (SELECT 사원번호, MAX(연봉) AS 연봉 FROM 급여 WHERE 사원번호 BETWEEN 10001 AND 20000 GROUP BY 사원번호) AS 급여WHERE 사원.사원번호 = 급여.사원번호; 1. 인덱스 스캔 VS 테이블 풀 스캔을 비교해야 한다. → 사례 중심으로 정리2. 난이도 높은 개념 : Extra - Using Temprory , Type - ref, index..
[MYSQL] 인덱스(INDEX) - 인덱스란? 인덱스란 무엇인가?: 카디널리티와 선택도의 이해도를 통해서, 인덱스의 개념과 원리를 정립 할 수 있다. 1. 정의 : 인덱스(Index)는 테이블에서 키(=특정컬럼) 값을 기준으로 실제 데이터의 위치를 식별하여, 데이터 접근 속도를 높이고자 생성되는 키-오브젝트(특정컬럼-데이터위치) 이다.수 많은 데이터가 있는 DB 를 풀 스캔 하여 데이터에 접근 하는 것은 비효율적이다.따라서, 원하는 컬럼의 데이터의 위치값을 저장하여 별도로 관리하는 것이다. 2. DB 와 키-오브젝트 인덱스 테이블의 관계1) 명단 테이블-  카디널리티가 높은 주민번호 컬럼을 인덱스로 지정했다. (* 포인터 컬럼은 시스템 내에 설정되는 컬럼이다.)순서이름주민번호성별거주지포인터(레코드 위치)1김길동911101남서울시10012이길동8712..
[MYSQL] 인덱스(INDEX) - 배경 설명 개념적인 튜닝 용어의 관한 정의: 카디널리티 와 선택도의 개념 및 관계를 인식해야, 효율적인 인덱스 생성이 가능 할 수 있다. 1. 선택도 : 테이블의 특정 열을 기준으로 해당 열의 조건절(WHERE 절)에 따라 선택 되는 데이터의 비율을 의미한다. 2. 카디널리티 : 전체 데이터에 접근한 뒤 출력될 것이라 예상되는 데이터 건수 각각의 개념을 이해하는 것보다 두 개념을 통합해서 이해하는게 인덱스 설정에 효율적이다 ※ 카디널리티 = 전체 데이터 건수 X 선택도( * 선택도 = 선택한 데이터_고유한 데이터_의 수 / 전체 데이터 개수)MYSQL에서 선택도 계산에 있어서, 고유한 데이터 라는 개념이 매우 중요하다. 앞선, 개념과는 반대되는 의미로 해석 될 수 있기 떄문이다. 아래 예시를 들어서, 해석해 보자...
JSON { "status": "success", "data": [ { "id": "1", "employee_name": "Fletcher Connolly", "employee_salary": "320800", "employee_age": "61" }, { "id": "2", "employee_name": "Lillie-May Fuller", "employee_salary": "345300", "employee_age": "55" }, { "id": "3", "employee_name": "Skylar Tanner", "employee_salary": "442800", "employee_age": "51" }, { "id": "4", "employee_name": "Connar Sanders", "employee..
인터뷰 1. 인터뷰
토이프로젝트 - 트러블 슈팅 Trouble Shooting 시스템에서 발생하는 복잡한 문제들을 종합적으로 진단해 해결하는 것. 시스템이나 장치 등에서 발생한 장애를 각종 수법을 써서 원인을 추구하고, 찾아내는 것. IT용어로 시스템에서 복잡한 문제들을 종합적으로 진단해 처리하는 것이다. 1. 인텔리제이 APP 실행 가이드. 1) 인텔리제이 APP 실행 디버깅 모드 Start !! 2) 디버깅 > 컨솔창 확인 ## 디버깅 모드 ICON 이 없을 경우 .. - Class > [우측]버튼 > Debug 'SpringDemoApplication main()' 로 디버깅 모드 실행