반응형
이것이 MariaDB다2
MariaDB 고급
- AUTO-INCREMENT로 지정한 열은 PRIMARY KEY나 UNIQUE로 반드시 지정해야 한다.
- 데이터의 무결성에 대한 6가지 제약
- PRIMARY KEY 제약 조건 : 중복되면 안되고 NULL도 안됨
- FOREIGN KEY 제약 조건 : FK로 연관된 키값이 PK이거나 UNIQUE 이어야 함
- UNIQUE 제약 조건
- CHECK 제약 조건
- DEFAULT 정의
- NULL 값 허용
- SHOW KEYS FROM 테이블명; 테이블에 지정된 키 보기
- SHOW INDEX FROM 테이블명;
- ON DELETE CASECADE or ON UPDATE CASECADE : 기준TB PK값이 변경시 외래키 TB 데이타도 변경되거나 삭제
- ON UPDATE NO ACTION or ON DELETE NO ACTION : 기준TB PK값의 변경에도 외래키 TB 영향 없음
- CHECK 제약조건
- DEFAULT 정의 : 기본 입력값
- 테이블 압축(테이블 생성시)
- 칼럼 압축
- 임시 테이블 : 세션상만 유지
- DROP TABLE 테이블명; 테이블 삭제
- ALTER TABLE 테이블명; 테이블 수정
- SET foreign-key-checks = 0; 외래키 제약 조건 비활성화
- SET foreign-key-checks = 1; 외래키 제약조건 활성화
- 뷰
- CREATE VIEW AS SELECT 문~
- 인덱스
- 전체 테이블 검색 Full Table Scan
- 클러스터형 인덱스(영어사전)와 보조 인덱스(찾아보기)
- 클러스터형 인덱스는 테이블당 한 개만 생성할 수 있고, 보조 인덱스는 테이블당 여러 개를 생성할 수 있음
- PRIMARY KEY로 지정하면 자동으로 클러스터형 인덱스가 생성됨
- UNIQUE NOT NULL 로 지정된 열은 클러스터형 인덱스가 생성됨
- UNIQUE (또는 UNIQUE NULL)로 지정된 열은 보조 인덱스가 생성됨
- PRIMARY KEY로 지정한 열(또는 클러스터형 인덱스가 생성된 열)로 데이터가 오름차순 정렬됨
- 인덱스를 구성하게 되면 데이터의 변경시에 성능이 나빠질 수 있음(페이지 분할)
- MariaDB에서는 노드가 페이지가 되며 인덱스를 구현할 때 기본적으로 B-Tree 구조를 사용한다.
- 인덱스 생성 CREATE INDEX 인덱스명 ON 테이블명;
- 인덱스 제거 DROP INDEX 인덱스명 ON 테이블명;
- 실행 계획 EXPLAIN SELECT 문 ~
- Type : ALL (Full Table Scan)
- Type : Const ( Primary Scan)
- Type : Ref (보조 인덱스 이용)
- 스토어드 프로그램
- 스토어드 프로시저의 생성, 수정, 삭제
- DECLARE 액션 HANDLER FOR 오류조건 처리할 문장구문
- SHOW CREATE PROCEDURE 프로시저의 내용 확인
- 스토어드 프로시저의 특징: 성능향상, 유지관리의 편의성, 모듈식 프로그래밍, 보안강화(접근 권한을 부여)
- 스토어드 함수: 사용자가 직접 만들어서 사용하는 함수
- SHOW CREATE FUNCTION : 스토어드 함수 내용 확인
- DROP FUNCTION ~ : 스토어드 함수 삭제
- 커서
- 트리거 : 테이블 삽입,수정,삭제 등 작업이벤트가 발생할 때 자동으로 작동되는 개체
- AFTER 트리거, BEFORE 트리거
- TRUNCATE TABLE 테이블명은 DELETE FROM 테이블명과 동일하게 행 데이터를 삭제, 그러나 트리거가 작동되지 않음
- 트리거가 생성하는 임시 테이블 NEW, OLD
- SHOW TRIGGERS : 생성된 트리거 확인
- DROP TRIGGER 트리거명 : 트리거 삭제
- 다중 트리거, 중첩 트리거
- 전체 텍스트 인덱스(FULLTEXT Index) 생성
- 중지 단어
- 자연어 검색, 불린 모드 검색
- 파티션
- 파티션을 나눴던 그렇지 않든 사용자는 신경쓰지 않아도 됨.
- 파티션을 삭제하면 그 파티션의 데이터도 삭제됨.
반응형
'DB' 카테고리의 다른 글
프로그래머스 SQL 테스트 3 (0) | 2022.06.01 |
---|---|
SQL JOIN문 공부하기 (0) | 2022.05.15 |
프로그래머스 SQL 테스트 2 (0) | 2022.05.11 |
프로그래머스 SQL 테스트 1 (0) | 2022.05.10 |
이것이 MariaDB다 1 (0) | 2020.02.22 |
댓글