728x90
728x90

SQL 4

MySQL(MariaDB)의 EXPLAIN으로 실행 결과 분석하기

실행 계획이라고 하면, 쿼리가 어떻게 데이터를 불러오는지에 대한 계획을 의미한다. 실행 계획을 통해서 어떤 테이블이 어떤 방식으로 조회됐는지 확인할 수 있다. 조회 쿼리의 인덱스 사용 유무를 확인할 때, 전체 조회 대상 중에서 검색 조건에 의해 어느정도의 비율로 필터링 되는지와 같이 성능 튜닝에 필요한 요소들을 확인하고자 할 때 쿼리 실행 계획을 확인해보는 것이 좋다. 실행 계획을 확인하는 데 있어서, MySQL(MariaDB)에서는 EXPLAIN, DESCRIBE, DESC를 사용한다. 세 명령어 모두 같은 결과를 내기 때문에 편한 걸 사용하면 된다.(필자는 EXPLAIN을 많이 쓴다.) 사용 예시 EXPLAIN SELECT * FROM employee WHERE employee_num BETWEEN ..

Computer Science/DB 2021.11.07

MySQL에서 sql 파일로 데이터 추가 시 한글 깨짐 문제(feat:명령프롬프트)

Workbench 같은 좋은 SQL 관련 프로그램들이 많이 나와 있어서 흑백 바탕에 무언가를 입력하는 사람들이 많이 줄어든 것 같다. 그래도 아직까지는 명령어가 편한 사람들이 많고, 특히 입문자들은 명령 프롬프트(cmd.exe)를 이용해서 mysql에 접속해서 쿼리를 날리는 것 같다. MySQL 대부분의 인코딩 문제는 인코딩 관련 설정 문제라서 관련 글들을 참조하면 잘 해결할 수 있다. 보통의 경우 UTF-8로 데이터를 설정하는데 설정 문제에서 해결을 보면 좋지만, 그게 아닌 경우가 간혹 있다. 예를 들어, sql 파일을 source 명령어로 실행하는 경우라면 입력 데이터와 DB의 인코딩 설정이 문제가 아닐 수가 있다. 분명 모든 설정들, SQL과 입력되는 데이터까지 UTF-8로 인코딩이 되어 있는 상황..

[DB] SQL에 대한 내용 간단한 정리

SQLSEQUEL(Structured English Query Language)최초의 RDBMS인 SystemR을 위한 DB 언어로 개발되었음.1986년 ANSI에서 관계형 DB의 표준언어로 인증. SQL은 데이터 정의(DDL)/조작(DML)/제어(DCL)하는 종합 DB언어관계 대수식에 비해 키보드로 표기하기 쉬움 관계 대수식(Relational Algebra)와 SQL의 차이 - 관계대수식Relation튜플의 집합결과 중복 불허 - SQL튜플의 백(Bag)튜플 간의 순서는 없고, 결과 중복 허용 관계 대수식이 중복을 불허하면서, 결과에 대해 항상 중복 내용을 제거하는 작업이 발생하여, 결과를 내는데 시간이 오래 걸리는 성능 문제가 발생함. 기본 구문 DDL : 데이터 정의CREATECREATE TABL..

Etc] MS SQL Server 데이터 형식

MS SQL 데이터 형식 BigInt : 64bit 부호 있는 정수 Binary : Byte 형식의 Array Bit : 0, 1 및 Null참조일 수 있는 부호 없는 숫자 Char : 1~8000자의 유니코드가 아닌 문자의 고정 길이 스트림 DateTime : 3.33ms의 정확성으로 값 범위가 1753/1/1에서 9999/12/31까지의 날짜 및 시간 데이터 Decimal : -(10^38+1)~+(10^38-1) 사이의 고정 전체 자릿수 및 소수 자릿수 값 Float : -1.79e+308 ~ 1.79e+308의 부동 소수점 숫자 Image : 0~(2^31-1)byte의 이진 데이터 가변 길이 스트림 Text : 최대 (2^31-1)자의 유니코드가 아닌 데이터의 가변 길이 스트림

728x90