11. 쿼리 작성 및 최적화

1. 쿼리 작성과 연관된 시스템 변수

1.1) SQL 모드

| ONLY_FULL_GROUP_BY | GROUP BY 절이 사용된 문장의 select 절에는 group by 절에 명시된 컬럼과 집계함수(count, sum)만 사용 가능하도록 강제하는 옵션 (5.7까지는 기본값으로 비활성화되었었는데 8.0부터 활성화) | | --- | --- | | STRICT_ALL_TABLESSTRICT_TRANS_TABLES | (모든 혹은) 트랜잭션 지원 스토리지 엔진 테이블에 대해서 Strict SQL Mode | | NO_ZERO_IN_DATENO_ZERO_DATE | 0000-00-00 날짜에 대해 유효한 날짜로 허용하지 않음 2010-00-01 등 유효하지 않은 날짜를 허용하지 않음 | | ERROR_FOR_DIVISION_BY_ZERO | MOD(N,0)을 포함하여 0으로 나누기 처리 규칙 지정 • 비활성화 → NULL , 경고X • 활성화 → NULL , 경고 | | NO_ENGINE_SUBSTITUTION | CREATE TABLE 또는 ALTER TABLE과 같은 명령문이 비활성되거나 컴파일되지 않은 스토리지 엔진을 지정할 때 기본 스토리지 엔진의 자동 대체를 제어 • 비활성화 ◦ CREATE TABLE : 기본 엔진이 사용(사용할 수 없는 경우 경고) ◦ ALTER TABLE : 경고를 발생하고 테이블 변경되지 않음 • 활성화 ◦ 오류가 발생하고 원하는 엔진을 사용할 수 없는 경우 테이블이 생성되거나 변경되지 않음 |

1.2) 영문 대소문자 구분

1.3) MySQL 예약어