본문 바로가기

인덱스

(4)
mysql 함수를 이용한 인덱스 생성하기 feat.virtual column mysql 함수를 이용한 인덱스 생성하기 feat.virtual column 안녕하세요. 이번에는 mysql에서 함수를 이용한 인덱스를 생성하는 방법은 안내 해드리려 합니다. 오라클에선 잘쓰던 함수를 이용한 인덱스를 Mysql 이나 Mariadb에서 사용 할 수 없어 답답 했었는데, 좋은 정보를 알게되어 공유를 해드립니다. 가상 컬럼 이란? Mysql 5.7 부터 지원되는 가상 컬럼은 가상의 칼럼을 둬서 수식과 조건문을 사용해 데이터의 가공 결과를 저장하는 것을 말합니다. 사용 방법에는 PERSISTENT(stored)와 VIRTUAL(generated-only)이라는 두 가지 타입이 존재합니다. 디폴트는 PERSISTENT 입니다. PERSISTENT virtual columns은 실제 데이터가 데이터..
mariadb partition table의 종류와 선택 기준 주의할 점 mariadb partition table의 종류와 선택 기준 주의할 점 안녕하세요. 오늘은 mariadb의 파티션 테이블에 대해서 서 mariadb에서도 partition table을 지원 하고 있습니다. partition table의 종류 와 특징 mariadb에서 지원하는 partition table의 종류는 다음과 같습니다. range 특정 파티션키의 범위, 즉 날짜에서 년도별로 한다던지, 일련번호의 특정 범위로 지정하여 테이블을 파티셔닝 하는 방법 입니다. list 특정 컬럼에 지정된 값만 들어올 경우에 그 값을 기준으로 테이블을 파티셔닝 하는 방법 입니다. hash 특정 값이나 범위로 지정하는게 아니라 mariadb에서 hash값으로 균등하게 테이블을 파티셔닝 하는 방법 입니다. key 테이블..
mysql 커버링 인덱스란 무엇인가? | sTricky mysql 커버링 인덱스란 무엇인가? | sTricky 일전에 SQL 튜닝 의뢰가 들어왔습니다. 요청 받은 SQL을 보니 특정 테이블을 self조인하는 형태 였습니다. 물론 SQL을 작성하면서 self조인은 필수불가결 할 때가 있죠. self조인 자체가 문제가 있는것은 아닙니다. 하지만 중요한것은 self 조인 역시 필요할 때만 써야 한다는것 이란거죠. 그래서 요청하신 분께 다시 문의를 드리니 커버링 인덱스를 쓰기 위한 self조인이라고 말 했습니다. 커버링 인덱스, 그건 무엇일까요? 그것에 대해서 알아보도록 하겠습니다. 커버링 인덱스란 커버링 인덱스라는건 어떤 SQL에서 원하는 출력 데이터와 조건 데이터가 모두 인덱스에 존재 하는 경우를 이야기 합니다. B-Tree 스캔으로만 모든 데이터를 알 수 있기..
Mysql Mariadb full-text 풀텍스트 검색 방법 자세히 알아보기 Mysql Mariadb full-text 풀텍스트 검색 방법 자세히 알아보기 안녕하세요. Mysql이나 Mariadb에서 full-text 검색이 필요 할때가 있습니다. like 또는 instr 검색이 아니라 fulltext 인덱스를 생성해서 검색의 속도도 높이고 검색 옵션도 다양하게 이용 할 수 있는 방법을 같이 알아 보겠습니다. 참고로 mysql 버전 5.5이상, innodb를 사용한다면 5.6버전 이상 부터 사용 하실 수 있습니다. Fulltext 인덱스 생성 우선 fulltext 기능을 사용하기 위해서는 검색을 하고자 하는 컬럼에 fulltext 인덱스가 생성 되어 있어야 합니다. fulltext 검색을 위한 fulltext 인덱스 생성 명령은 아래와 같습니다. ALTER TABLE 테이블명 A..