본문 바로가기

728x90
반응형

이것이 sql이다

[DB_MySQL] 이것이 MySQL이다 ch11 전체 텍스트 검색과 파티션 2 (파티션) 1. 파티션 개요와 실습 ◎ 파티션 ▷ 대량의 테이블을 물리적으로 여러 개의 테이블로 쪼개기 ▷ 데이터의 분포 특성, 자주 사용되는 쿼리문이 무엇인지에 따라서 효율에 차이 있음 ◎ 파티션 구성 ▷ 파티션 테이블에는 Primary Key 지정 하면 안됨 ▷ 데이터 입력 : 입력됨과 동시에 파티션 키에 의해서 데이터가 각 파티션으로 나뉘어짐 1. parttbl 테이블 생성 및 값 입력 -- 파티션으로 테이블 구현 : 대용량의 테이블을 물리적으로 분할하여 사용 -- sqldb.sql을 이용하여 sqldb 초기화 create database if not exists partdb; use partdb; drop table if exists parttbl; create table parttbl ( userID ch.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch11 전체 텍스트 검색과 파티션 1 (전체 텍스트 검색) 1. 전체 텍스트 검색 개요 ◎ 전체 텍스트 검색 ▷ 긴 문자로 구성된 구조화 되지 않은 텍스트 데이터(예로, 신문 기사) 등을 빠르게 검색하기 위한 부가적인 MySQL의 기능 ▷ 저장된 텍스트의 키워드 기반의 쿼리를 위해서 빠른 인덱싱 가능 ▷ 신문 기사 검색 ▷ 교통’을 키워드로 가진 기사 검색 ▷ 키워드가 중간에 들어간 경우 인덱스 사용 불가, 서버에 엄청난 부하 발생 2. 전체 텍스트 인덱스 ◎ 전체 텍스트 인덱스(FULLTEXT Index) 생성 ▷ 텍스트로 이루어진 문자열 데이터의 내용으로 생성한 인덱스 ▷ 텍스트 인덱스 생성 형식 ◎ 전체 텍스트 인덱스(FULLTEXT Index) 생성 ▷ 전체 텍스트 인덱스의 특징 ▶ InnoDB와 MyISAM 테이블만 지원 ▶ char, varchar, .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 4(트리거, trigger) 1. 트리거(Trigger)의 개요 ◎ 트리거란? ▷ 사전적 의미로 ‘방아쇠’ ▷ 방아쇠 당기면 ‘자동’으로 총알이 나가듯이 테이블에 무슨 일이 일어나면 ‘자동’으로 실행 ▷ 제약 조건과 더불어 데이터 무결성을 위해 MySQL에서 사용할 수 있는 기능 ▷ 테이블에 DML문(Insert, Update, Delete 등) 이벤트가 발생될 때 작동 ▷ 테이블에 부착되는 프로그램 코드 ▷ 직접 실행 불가 ▶ 테이블에 이벤트 일어나야 자동 실행 ▷ IN, OUT 매개 변수를 사용할 수 없음 ▷ MySQL은 View에 트리거 부착 불가 1. 테이블 생성 -- 트리거 : 테이블에 DML(i, u, d)문이 실행 될때 자동으로 SQL문을 실행 create database if not exists testDB; use .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 3(커서) 1. 커서의 개요 ◎ 커서(Cursor) ▷ 스토어드 프로시저 내부에 사용 ▷ 일반 프로그래밍 언어의 파일 처리와 방법이 비슷함 ▶ 행의 집합을 다루기 편리한 기능 제공 ▷ 테이블에서 여러 개의 행을 쿼리한 후, 쿼리의 결과인 행 집합을 한 행씩 처리하기 위한 방식 2. 커서의 처리 순서 ◎ 커서를 이용한 예제 -- CURSOR 커서 사용 -- 고객의 평균 키를 구하는 스토어드 프로시저 use sqldb; drop procedure if exists cursorProc; delimiter $$ create procedure cursorProc() begin declare userHeight int; -- 고객의 키 declare cnt int default 0; -- 고객의 수 declare totalH.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 2(스토어드 함수) 1. 스토어드 함수 (Stored Function) ▷ 사용자가 직접 만들어서 사용하는 함수 ▷ 스토어드 프로시저와 유사 ▶ 형태와 사용 용도에 있어 차이 있음 ▷ 스토어드 함수의 개요 2. 스토어드 함수와 스토어드 프로시저의 차이점 ◎ 스토어드 함수 ▷ 파라미터에 IN, OUT 등을 사용할 수 없음 ▶ 모두 입력 파라미터로 사용 ▷ RETURNS문으로 반환할 값의 데이터 형식 지정 ▶ 본문 안에서는 RETURN문으로 하나의 값 반환 ▷ SELECT 문장 안에서 호출 ▷ 함수 안에서 집합 결과 반환하는 SELECT 사용 불가 ▶ SELECT… INTO… 는 집합 결과 반환하는 것이 아니므로 예외적으로 스토어드 함수에서 사용 가능 ▷ 어떤 계산 통해서 하나의 값 반환하는데 주로 사용 ◎ 스토어드 프로시저 .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 1(스토어드 프로시저, Stored Procedure) 1. 스토어드 프로시저의 개요 ◎ 스토어드 프로시저(Stored Procedure, 저장 프로시저) ▷ MySQL에서 제공되는 프로그래밍 기능 ▷ 쿼리문의 집합으로 어떠한 동작을 일괄 처리하기 위한 용도로 사용 ▷ 쿼리 모듈화 ▶ 필요할 때마다 호출만 하면 훨씬 편리하게 MySQL 운영 ▶ CALL 프로시저_이름( ) 으로 호출 1. 기본 형식 2. 스토어드 프로시저 생성 예 ◎ 스토어드 프로시저 사용 예제 1 use sqldb; drop procedure if exists userProc1; delimiter $$ create procedure userProc1(in userName varchar(10)) begin select * from usertbl where name = userName; end.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch09 인덱스 1(클러스터형 인덱스, 보조 인덱스) 1. 인덱스(Index)란? ▷ 책의 의 개념과 비슷 ▷ 데이터를 좀 더 빠르게 찾을 수 있도록 해주는 도구 ◎ 인덱스의 장단점 ▷ 장점 ▶ 검색 속도가 무척 빨라질 수 있음 (항상 그런 것은 아님) → 책도 너무 두꺼우면 찾기 어렵기 때문입니다. ▶ 쿼리의 부하가 줄어들어 시스템 전체의 성능 향상 ▷ 단점 ▶ 인덱스가 데이터베이스 공간을 차지해서 추가적인 공간 필요 → 대략 데이터베이스 크기의 10% 정도의 추가 공간 필요 ▶ 처음 인덱스 생성하는데 시간 소요 ▶ 데이터의 변경 작업 (Insert, Update, Delete)이 자주 일어나는 경우 성능이 나빠질 수도 있음 ◎ 인덱스의 종류 ▷ 클러스터형 인덱스 (Clustered Index) ▶ 기본키 ▶ ‘영어 사전’과 같은 책 ▶ 테이블 당 한 개.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch08 테이블과 뷰 3(테이블스페이스) 1. 테이블스페이스(oracle) ◎ 테이블스페이스의 개념 ▷ 물리적인 공간을 뜻함 ▷ 데이터베이스는 논리적 공간 ▷ 테이블스페이스를 지정하지 않은 경우 ▶ 시스템 테이블스페이스(System Tablespace)에 테이블 저장됨 ▷ 시스템 변수 innodb_data_file_path에 관련 내용 저장됨 ▷ 시스템 테이블 스페이스 파일 확인 ▶ MySQL 8.0에서 테이블스 페이스 파일은 기본적으로 ‘C:\Programdata\MySQL\MySQL Server 8.0\Data’ 폴더에 저장 되어 있음 ◎ 성능 향상을 위한 테이블스페이스 추가 ▷ 소용량의 데이트를 사용하는 경우에는 테이블스페이스 고려하지 않아도 되나 대용량의 데이터를 운영할 경우에는 성능 향상을 위해 테이블스페이스의 분리를 적극 고려 ◎ 테.. 더보기

728x90
반응형