분류 전체보기

    [이것이 MYSQL이다] Full Text Index정리

    본 포스트는 2021년에 업로드된 포스트입니다. 개념이 아직 정리안된 나이에 업로드한 포스트이기에 수정사항이 있으면 연락주세요. Full Text Index 소개 전체 텍스트 검색인덱스는 인덱스의 확장개념이며 "전체 텍스트 인덱스(FULLTEXT Index)란 텍스트로 구성된 문자열 데이터의 내용을 가지고 생성한 인덱스"라고 정의되어 있다. 따라서 인덱스로 할수 없는 인덱스 검색을 지원한다. 인덱스의 기본개념을 다시 생각해보자 인덱스는 클러스터형 인덱스와 보조 인덱스가 있다고 했었고 대용량의 데이터를 검색하는데 사용한다고 하였다. 전체 텍스트 인덱스를 설명하기 위해 영화 정보를 저장하고 있는 테이블을 한번 생각해보자. 위와 같은 데이터가 있을것이다. 여기서 만약에 키워드 검색기능을 만든다고 생각해보면 d..

    [이것이 MYSQL이다] 스토어드 프로시저, 스토어드 함수, 커서, 트리거에 대하여 정리

    본 포스트는 2021년에 업로드된 포스트입니다. 개념이 아직 정리안된 나이에 업로드한 포스트이기에 수정사항이 있으면 연락주세요. 들어가기에 앞서 스토어드 프로시저/함수, 커서, 트리거는 mysql 데이터베이스에서 많이 쓰이는 문법이다. 위 개념을 잘 알아두면 MYSQL에서 쿼리문을 작성할때 보다 효율적이고 MYSQL에서 더 많은 처리를 수행할 수 있을것이다. 이제부터 위의 중요한 개념을 하나씩 설명하겠다. 스토어드 프로시저 스토어드 프로시저는 쉽게 설명하면 MYSQL에서 쿼리문을 모듈화 해놓을 수 있는 기능이다. 실제로 프로그래밍 언어에서 모듈화가 왜 필요한지 생각해보자. 모듈화를 하면 중복되는 코드를 하나의 파일이나 함수로 만들어서 호출로 간편하게 사용할 수 있기에 코드의 가독성이 높아지며 또한 중복되..

    [이것이 MYSQL이다] 인덱스에 대하여

    본 포스트는 2021년에 업로드된 포스트입니다. 개념이 아직 정리안된 나이에 업로드한 포스트이기에 수정사항이 있으면 연락주세요. 인덱스란 인덱스란 한마디로 정의하면 인덱스 == 탐색이라고 할 수 있을것같다. sql에서 인덱스를 잘 활용하면 검색속도가 무척이나 빨라진다. 대용량 테이블을 예시로 들어보자면 row가 30만개가 있는 테이블을 예시로 들어본다. 여기서 한개의 값만 찾으려면 엄청나게 많은 시간이 소요될 것이다. 또한 이러한 작업이 반복된다면 시스템에 큰 과부하를 줄 수 있다. 따라서 인덱스를 사용하면 검색속도(SELECT)가 엄청나게 빨라질것이다, 그러한 이유는 인덱스는 책 뒤에 찾아보기페이지와 비슷하다. 만약 책에서 어떠한 한 부분이 나오는 페이지를 찾으라고 할때 전체 페이지 수가 1000페이지..

    [이것이 MYSQL이다] 인덱스의 기초개념과 뷰 테이블

    본 포스트는 2021년에 업로드된 포스트입니다. 개념이 아직 정리안된 나이에 업로드한 포스트이기에 수정사항이 있으면 연락주세요. 뷰란? view table은 존재하지 않는 가상의 테이블을 지칭한다. 따라서 말 그대로 눈에 보이기만 하는 테이블이다. 뷰를 사용하는 이유는 다음 예시를 들으면서 설명할 수 있다. 뷰를 사용하는 이유 우리가 어떤 알바에게 회원 정보중 주소열을 모두 수정하라고 알바를 고용했다. 회원테이블에는 회원들의 수많은 개인정보가 들어있다. 알바는 주소를 수정할때 회원들의 다른 개인정보를 가져갈수도 있는 최악의 상황이 발생한다. 따라서 새로운 테이블을 하나 만들어서 알바에게 해당 테이블에게만 접근권한을 부여해서 그 테이블만 수정하게끔하면 되지만 그러면 알바가 수정해놓은 결과를 또 한번 메인테..

    [이것이 MYSQL이다] 7장 중후반 정리 (pivotTable, Join)

    7장 주요내용 mysql 7장에서는 대표적으로 sql프로그래밍, join, pivot에 대하여 배우게 되었다. sql 고급문을 다룬 내용이므로 이해하기 어려운 부분이 있었지만 잘 소화하였던것 같다. 특히 join이라는 개념은 mysql과 다른 관계형 데이터베이스에서 무지막지 하게 많이 쓰이는 개념이므로 정말 중요하다. Pivot Table (피벗 테이블) 피벗테이블은 데이터의 통계나 집계를 하기 위하여 많이 쓰이는 형식이다. 간단하게 쇼핑몰의 구매 테이블을 생각하게 된다면 한 유저는 여러 물건을 구입할수 있게 된다. 아래와 같은 테이블이 될것이다. 위와 같이 같은 유저 아이디로 여러개의 물건을 구입할 수 있다. 하지만 이러한 통계는 눈에 잘 보이지 않는다. 이제 이걸 pivot table로 나타내보자. ..

    [이것이 MYSQL이다] 7장 초반 정리 (내장함수, MYSQL 자료형)

    본 포스트는 2021년에 업로드된 포스트입니다. 개념이 아직 정리안된 나이에 업로드한 포스트이기에 수정사항이 있으면 연락주세요. MYSQL의 자료형 mysql의 자료형은 무궁무진하게 많다. 하지만 이들중 많이 사용되는것은 많이 없다. 대표적으로 VARCHAR, CHAR, INT, BIGINT, SMAIL INT 등이 있다. 나는 기본적으로 VARCHAR과 CHAR의 차이를 햇갈려했었는데 그 이유는 실행 했을떄 저장되는 데이터의 차이를 모르겠어서이다. VARCHAR과 CHAR의 차이는 CHAR는 고정적인 byte 길이, VARCHAR은 유동적인 byte 길이를 뜻한다. CHAR(30)은 크기가 30byte인 고정적인 길이를 할당한다. 따라서 30byte인 char에 "Helloworld"만 입력한다면 20..

    [이것이 MYSQL이다] MYSQL 인덱스, 트리거, 뷰, 스토어드 프로시저 간단한 개념 정리

    본 포스트는 2021년(중1)에 업로드된 포스트입니다. 개념이 아직 정리안된 나이에 업로드한 포스트이기에 수정사항이 있으면 연락주세요. 인덱스 인덱스는 데이터베이스에서 SELECT 문을 사용할때 쓰이는 키이다. 데이터베이스안에 데이터가 많이 없을경우에는 인덱스를 쓸 필요는 없지만 데이터가 2만개 3만개....100만개 이렇게 늘어난다고 가정하면 데이터베이스에서 원하는 row를 찾을때 엄청난 시간이 소요될뿐 아니라 과부하가 일어날 가능성이 크다. 바로 이때 인덱스 키를 사용한다. 책으로 가정해보면 책에서는 맨뒤에 라는 칸이있다. 원하는 위치 부분의 쪽수를 알려주면 그쪽 부분으로 바로 가서 원하는 부분을 읽을수 있다. 이 개념과 비슷한 것이 바로 인덱스 키이다. 만약 책에서 가 없다면 우리가 원하는 페이지를..