본문 바로가기
  • keep calm and carry on

[ MariaDB ]4

[ mariaDB ] 실행계획 #2, id칼럼 EXPLAIN() 명령어의 결과에서 id 칼럼의 숫자가 의미하는 것은 작성한 쿼리의 SELECT문의 갯수를 뜻합니다. 예를 들어보겠습니다. [ 쿼리 ] EXPLAIN ( SELECT * FROM `employees`.`employees` WHERE emp_no = 10032 ); [ 결과 ] id값이 1입니다. 그 이유는 EXPLAIN 안에 있는 쿼리의 SELECT 의 갯수가 1개이기 때문입니다. 다음 예제를 살펴보겠습니다. [ 쿼리 ] EXPLAIN ( SELECT * FROM `employees`.`employees` WHERE emp_no = ( SELECT emp_no FROM `employees`.`salaries` WHERE `salary` = 158220 ) ); [ 결과 ] ( id 칼럼만.. 2019. 12. 8.
[ mariaDB ] 실행계획 분석 #1, EXPLAIN mariaDB는 크게 mariaDB 엔진, 스토리지 엔진 으로 나눌 수 있습니다. mariaDB엔진은 사용자로부터 전달된 쿼리를 파싱하여 파스트리(parse tree)를 만들고, 옵티마이저가 실행계획을 세워 같은 결과를 내지만 비용이 가작 적게드는 쿼리를 만들어 스토리지 엔진으로 전달하는 역할을 합니다. 흔히 옵티마이저를 데이터베이스의 두뇌의 역할로 비유합니다. 옵티마이저의 역할이 SQL 실행 성능에 상당부분을 차지하기 때문에 SQL쿼리 튜닝에 관심이 많거나 SQL 개발자라면 반드시 알고 넘어가야 하는 부분이라고 생각합니다. 실행계획은 옵티마이저의 주된 역할로써 쿼리가 어떻게 실행될지에 대한 많은 정보를 담고 있습니다. mariadb에서 실행계획을 보는 방법은 생각보다 간단합니다. 쿼리문을EXPLAIN(.. 2019. 12. 8.
DDL(Data Definition Language) DDL(Data Definition Language)은 데이터의 구조를 다루기위한 명령어. 좀더 정확하게 말하면, 데이터의 구조를 다룬다는것은 데이터베이스내 테이블의 구조( 테이블, 칼럼, 테이블 이름 ), 뷰(View), 시퀀스(sequence) 등을 정의하거나 변경하는 것을 말한다. DDL에서 사용하는 명령어는 CREATE, ALTER, DROP, RENAME가 있다. DDL문을 사용하는 경우는 대부분 테이블에대한 구조를 정의하거나 테이블 칼럼의 구조 변경, 제약조건의 추가 삭제 일 것이다. 필자 역시 테이블을 대상으로 DDL문을 가장 빈번하게 사용했던 것 같다. 따라서 테이블을 대상으로 구조를 정의하거나 변경하는 DDL문을 통해 하나씩 살펴보도록 하겠다. 1. CREATE CREATE 명령어는 테이.. 2018. 9. 15.
SQL 이란? SQL 이란 Structured Query Language의 약자로, 흔히 '질의어'라고 불린다. SQL은 데이터베이스에서 데이터구조를 정의(DDL) 하거나, 데이터를 조회, 삽입, 수정, 삭제(DML), 데이터에 권한(DCL)을 주는 작업을 하기 위해 사용되는 언어이다. 프로그램을 짜기 위해서는 C, JAVA 와 같은 언어를 사용하는 것처럼, 데이터베이스를 다루기 위해서 사용하는 언어가 SQL이라고 보면 된다. SQL에서 사용하는 명령어의 종류는 크게 4가지가 있다. 1. DML( Data Manipulate Language), 데이터 조작어.2. DDL( Data Definition Language ), 데이터 정의어.3. DCL( Data Control language), 데이터 제어어.4. TCL.. 2018. 9. 15.