728x90
반응형

DB 16

이것은MySQL이다 - 전체 텍스트 검색과 파티션

전체 텍스트 검색 전체 텍스트 검색 개요 전체 텍스트 검색 긴 문자로 구성된 구조화 되지 않은 텍스트 데이터(예로, 신문 기사) 등을 빠르게 검색하기 위한 부가적인 MySQL의 기능 저장된 텍스트의 키워드 기반의 쿼리를 위해서 빠른 인덱싱 가능 전체 텍스트 검색 신문 기사 검색 교통’을 키워드로 가진 기사 검색 키워드가 중간에 들어간 경우 인덱스 사용 불가, 서버에 엄청난 부하 발생 전체 텍스트 인덱스 전체 텍스트 인덱스(FULLTEXT Index) 생성 텍스트로 이루어진 문자열 데이터의 내용으로 생성한 인덱스 텍스트 인덱스 생성 형식 텍스트 인덱스 생성 형식 전체 텍스트 인덱스의 특징 InnoDB와 MyISAM 테이블만 지원 char, varchar, text의 열에만 생성 가능 인덱스 힌트 사용 일부..

DB/MySQL 2023.02.10

이것이MySQL이다 - 03) 스토어드 프로그램

트리거 트리거(Trigger)의 개요 트리거란? 사전적 의미로 ‘방아쇠’ 방아쇠 당기면 ‘자동’으로 총알이 나가듯이 테이블에 무슨 일이 일어나면 ‘자동’으로 실행 제약 조건과 더불어 데이터 무결성을 위해 MySQL에서 사용할 수 있는 기능 테이블에 DML문(Insert, Update, Delete 등) 이벤트가 발생될 때 작동 테이블에 부착되는 프로그램 코드 직접 실행 불가 테이블에 이벤트 일어나야 자동 실행 IN, OUT 매개 변수를 사용할 수 없음 MySQL은 View에 트리거 부착 불가 트리거 실습 testDB에 테이블 생성 -- 트리거 : 테이블에 DML(i, u, d)문이 실행 될때 자동으로 SQL문을 실행 create database if not exists testDB; use testdb;..

DB/MySQL 2023.02.10

이것이MySQL이다 - 02) 스토어드 프로그램

스토어드 함수 스토어드 함수 (Stored Function) 사용자가 직접 만들어서 사용하는 함수 스토어드 프로시저와 유사 형태와 사용 용도에 있어 차이 있음 스토어드 함수의 개요 스토어드 함수와 스토어드 프로시저의 차이점 스토어드 함수 파라미터에 IN, OUT 등을 사용할 수 없음 모두 입력 파라미터로 사용 RETURNS문으로 반환할 값의 데이터 형식 지정 본문 안에서는 RETURN문으로 하나의 값 반환 SELECT 문장 안에서 호출 함수 안에서 집합 결과 반환하는 SELECT 사용 불가 SELECT… INTO… 는 집합 결과 반환하는 것이 아니므로 예외적으로 스토어드 함수에서 사용 가능 어떤 계산 통해서 하나의 값 반환하는데 주로 사용 스토어드 프로시저 파라미터에 IN, OUT 등을 사용 가능 별도의..

DB/MySQL 2023.02.10

이것이MySQL이다 - 01) 스토어드 프로그램

스토어드 프로시저 스토어드 프로시저의 개요 스토어드 프로시저(Stored Procedure, 저장 프로시저) MySQL에서 제공되는 프로그래밍 기능 쿼리문의 집합으로 어떠한 동작을 일괄 처리하기 위한 용도로 사용 쿼리 모듈화 필요할 때마다 호출만 하면 훨씬 편리하게 MySQL 운영 CALL 프로시저_이름( ) 으로 호출 기본 형식 스토어드 프로시저 생성 예 스토어드 프로시저의 수정과 삭제 수정 : ALTER PROCEDURE 삭제 : DROP PROCEDURE 매개 변수의 사용 입력 매개 변수를 지정하는 형식 입력 매개 변수가 있는 스토어드 프로시저 실행 방법 매개 변수의 사용 출력 매개 변수 지정 방법 출력 매개 변수에 값 대입하기 위해 주로 SELECT… INTO문 사용 출력 매개 변수가 있는 스토어..

DB/MySQL 2023.02.10

이것이MySQL이다 - 02) 인덱스

인덱스 생성/변경/삭제 인덱스 생성 인덱스 생성 문법 인덱스 제거 인덱스 삭제 형식 간단히 인덱스 삭제하는 구문 인덱스의 성능 비교 인덱스 없는 경우, 클러스터형 인덱스, 보조 인덱스를 설정하여 쿼리 속도 비교, 서버 부하 비교 실습할 데이터베이스 만듬 CREATE DATABASE IF NOT EXISTS indexdb; employees의 employees의 개수를 파악 USE indexdb; SELECT COUNT(*) FROM employees.employees; 테이블 3개로 복사 CREATE TABLE emp SELECT * FROM employees.employees ORDER BY RAND(); CREATE TABLE emp_c SELECT * FROM employees.employees O..

DB/MySQL 2023.02.09

이것이MySQL이다 - 01) 인덱스

인덱스의 개념 인덱스(Index)란? 책의 의 개념과 비슷 데이터를 좀 더 빠르게 찾을 수 있도록 해주는 도구 인덱스의 장단점 장점 검색 속도가 무척 빨라질 수 있음 (항상 그런 것은 아님) 쿼리의 부하가 줄어들어 시스템 전체의 성능 향상 단점 인덱스가 데이터베이스 공간을 차지해서 추가적인 공간 필요 대략 데이터베이스 크기의 10% 정도의 추가 공간 필요 처음 인덱스 생성하는데 시간 소요 데이터의 변경 작업 (Insert, Update, Delete)이 자주 일어나는 경우 성능이 나빠질 수도 있음 인덱스의 종류와 자동 생성 인덱스의 종류 클러스터형 인덱스 (Clustered Index) ‘영어 사전’과 같은 책 테이블 당 한 개만 지정 가능 행 데이터를 인덱스로 지정한 열에 맞춰 자동 정렬 보조 인덱스 ..

DB/MySQL 2023.02.09

이것이MySQL이다 - 02) 테이블과 뷰

테이블 테이블 압축 압축 기능은 대용량 테이블의 공간 절약하는 효과 MySQL 5.0부터 자체적으로 테이블 압축 기능 제공 MySQL 8.0에서 내부적인 기능이 더욱 강화 MySQL이 허용하는 최대 용량의 데이터도 오류 없이 압축 가능 테이블 압축 예제 실습(P. 337~338) 테스트용 DB 생성 – 동일한 열을 지닌 간단한 두 테이블 생성 하나는 열 뒤에 ROW_FORMAT=COMPRESSED문을 붙여서 압축되도록 설정 두 테이블에 데이터 30만 건 입력 쿼리 실행 결과 두 테이블 상태 확인 SHOW TABLE STATUS FROM compressDB; 실습한 DB 제거 DROP DATABASE IF EXISTS compressDB; 임시 테이블 임시로 잠깐 사용되는 테이블 세션(Session) 내에..

DB/MySQL 2023.02.08

이것이MySQL이다 - 01) 테이블과 뷰

테이블 테이블만들기 MySQL Workbench에서 테이블 생성 Navigator – [Schemas] 클릭 – ‘tabledb’ 확장 – ‘Tables’ 마우스 오른쪽 버튼 – [Create Table] 선택 MySQL Workbench에서 테이블 생성 usertbl 생성 userID열을 기본 키(Primary Key)로 설정 MySQL Workbench에서 테이블 생성 buytbl 생성 num열을 기본 키(Primary Key)로 설정 테이블 만들기 MySQL Workbench에서 테이블 생성 buytbl 생성 num열에 AUTO_INCREMENT, FOREIGN KEY 추가 MySQL Workbench에서 데이터 입력 Navigator에서 usertbl 선택 – 마우스 오른쪽 버튼 클릭 – [Sel..

DB/MySQL 2023.02.08

이것이MySQL이다 - 02) SQL 고급

조인 조인(Join) 조인 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것 종류 : INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN 데이터베이스의 테이블 중복과 공간 낭비를 피하고 데이터의 무결성을 위해서 여러 개의 테이블로 분리하여 저장 분리된 테이블들은 서로 관계(Relation)를 가짐 1대 다 관계 보편적 INNER JOIN(내부 조인) 조인 중에서 가장 많이 사용되는 조인 대개의 업무에서 조인은 INNER JOIN 사용 일반적으로 JOIN이라고 얘기하는 것이 이 INNER JOIN 지칭 사용 형식 JOIN만 써도 INNER JOIN으로 인식함 조인 중에서 가장 많이 사용되는 조인 조인 중에서 가장 많이 사용되는 조인 OUTER JOIN(..

DB/MySQL 2023.02.07

이것이MySQL이다 - 01) SQL 고급

MySQL의 데이터 형 MySQL에서 지원하는 데이터 형식의 종류 Data Type으로 표현 데이터 형식, 데이터형, 자료형, 데이터 타입등 다양하게 불림 데이터 형식에 대한 이해가 필요한 이유 SELECT문 더욱 잘 활용 테이블의 생성 효율적으로 하기 위해 필요 MySQL에서 데이터 형식의 종류는 30개 정도 중요하고 자주 쓰는 형식에 대해 중점 학습 MySQL에서 지원하는 데이터 형식의 종류 숫자 데이터 형식 문자 데이터 형식 날짜와 시간 데이터 형식 기타 데이터 형식 LONGTEXT, LONGBLOB LOB(Large Object, 대량의 데이터)을 저장하기 위해 LONGTEXT, LONGBLOB 데이터 형식 지원 지원되는 데이터 크기는 약 4GB의 파일을 하나의 데이터로 저장 가능 LONGTEXT..

DB/MySQL 2023.02.06
728x90
반응형