일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 더미데이터
- 배타서브타입
- 제1정규형
- 정규형
- order-by
- sociallogin
- 불완전서브타입
- Spring Cloud Gateway
- 제4정규형
- 인덱스
- 크롬원격데스크톱
- 주석제거
- mysql
- 제5정규형
- 물리모델
- 데이터통합
- vue3
- SQL
- 빈줄제거
- bc정규형
- 워크벤치
- group-by
- Workbench
- 실행계획
- index
- 중복서브타입
- 샘플데이터
- 함수종속
- 서브타입
- 완전서브타입
- Today
- Total
목록SQL (37)
domsam - IT 기술 블로그

1. DB 엔진 1.1 스토리지 엔진스토리지 엔진은 데이터를 관리하는 엔진이며 데이터 저장 방식에 따라 엔진이 구분된다. MySQL은 InnoDB 스토리지 엔진을 기본적으로 사용하며 InnoDB는 클러스터링 인덱스 방식으로 데이터를 저장한다. MySQL 엔진이 요청한 데이터를 디스크나 메모리에서 찾아서 MySQL 엔진에게 전달한다. 1.2 MySQL 엔진사용자가 요청한 SQL문을 SQL 파서와 전처리기(Preprocessor)에서 문법 검사를 진행하고 SQL 옵티마이저에 의해 데이터를 가져올 최적의 계획을 세운 후 스토리지 엔진에게 실행 계획대로 데이터를 가져오길 요청한다. 스토리지 엔진으로부터 넘겨받은 데이터에서 불필요한 데이터는 제거하고 가공 및 연산을 진행한다. 그리고 사용자에게 결과 데이터를 전..

MySQL 공식 샘플데이터 설치를 희망하면 공식 웹페이지 https://dev.mysql.com/doc/index-other.html로 이동한다.원하는 샘플데이터를 Zip파일로 다운로드를 받는다. 지금은 employee data를 설치할 예정이라서 GitHub를 클릭하여 웹 페이지 이동을 한다.GitHub를 클릭하면 https://github.com/datacharmer/test_db로 이동된다." Code" 버튼을 클릭하면 Drop-Down Menu가 나타난다. 메뉴 중 "Download ZIP"을 클릭하여 "test-db-master.zip" 압축파일을 다운로드 받는다. 다운로드 파일을 경로가 간단한 곳으로 이동한다. C:\ 로 이동하자.압축파일을 압축 해제한다. 주의사항으로 압축파일 안에 폴더(폴더..

2025-03-13 기준, 웹페이지 https://dev.mysql.com/downloads/ 으로 이동한다.위 화면이 나타나면 "MySQL Installer for Windows" 링크를 클릭한다.Select Version: 원하는 Version을 선택Select Operating System: MySQL을 설치할 운영체제를 선택Download: 352.2M 다운로드 버튼을 선택디폴트로 화면에 보이는대로 선택된다. 디폴트 상태로 아래 Download 버튼을 클릭한다. 오라클 사이트에 비로그인 상태면 위와 같은 화면이 나타난다. 로그인을 진행하거나 "No thanks, just start my download." 링크를 클릭하여 설치 파일을 내려받자.컴퓨터에 다운로드한 파일 "mysql-installer..

1. GROUP BY 처리GROUP BY 절이 있는 쿼리에서는 HAVING 절을 사용할 수 있는데 HAVING 절은 GROUP BY 결과에 대한 필터링 역할을 수행한다. GROUP BY에 사용된 조건은 인덱스를 사용할 수 없기 때문에 HAVING 절을 튜닝하려고 고민할 필요는 없다.GROUP BY 작업 구분인덱스 사용 여부작업 방법인덱스 사용 가능인덱스 스캔루스 인덱스 스캔인덱스 사용 불가능임시 테이블 2. 인덱스 스캔을 이용하는 GROUP BY (타이트 인덱스 스캔)ORDER BY 처리와 마찬가지로 조인의 드라이빙 테이블에 속한 컬럼만 이용해 그루핑할 때 인덱스가 있다면 그 인덱스를 차레대로 읽으면서 그루핑 작업을 수행하고 그 결과와 조인을 처리한다. 이 경우라도 그룹 함수 등의 그룹값을 처리해야 하는..
1. ORDER BY 처리정렬을 처리하는 방법은 인덱스를 이용하는 방법과 쿼리가 실행될 때 'Filesort'라는 별도의 처리를 이용하는 방법이 있다. 장점단점인덱스 이용INSERT, UPDATE, DELETE 쿼리가 실행될 때 정렬을 해서 처리한다.결국 정렬이 이미 되어 있는 상태이기 때문에 읽기 속도가 매우 빠르다.INSERT, UPDATE, DELETE 작업 시 부가적인 인덱스 추가/삭제 작업이 필요하므로 비용이 더 든다.인덱스 때문에 디스크 공간이 더 많이 필요하다. 인덱스의 개수가 늘어날수록 InnoDB 버퍼 풀을 위한 메모리가 많이 필요하다. Filesort 이용인덱스를 생성하지 않아도 되므로 인덱스 이용의 단점이 장점으로 바뀐다. 정렬해야 할 레코드가 많지 않으면 메모리에서 Filesort..

1. 쿼리 실행 절차① SQL Parser: 요청된 SQL문장을 MySQL 서버가 이해할 수 있는 수준으로 분리하고 문법상 문제가 없는지 확인한다. ② Optimiser: SQL 파스 트리를 확인하면서 어떤 테이블에서 어떤 인덱스를 이용해 테이블을 읽을지 실행계획을 세운다.③ 실행계획대로 스토리지 엔진으로부터 데이터를 가져온다. 2. 옵티마이저 역할불필요한 조건 제거 및 복잡한 연산의 단순화여러 테이블의 조인이 있는 경우 어떤 순서로 테이블을 읽을지 결정각 테이블에 사용된 조건과 인덱스 통계 정보를 이용해 사용할 인덱스 결정가져온 레코드들을 임시 테이블에 넣고 다시 한번 가공해야 하는지 결정 3. 비용 기반 최적화 옵티마이저옵티마이저는 DBMS 두뇌와 같은 역할을 하며 MySQL의 옵티마이저는 비용 기반..