DB

    MySQL like 문 % 위치에 따라 index의 적용 여부

    MySQL like 문 % 위치에 따라 index의 적용 여부

    들어가기전.. MySQL 데이터베이스의 index의 구조는 Default가 B-tree 구조로 되어있다. 인덱스 타입 확인 show index from movies; 인덱스 정보를 조회해보면 pk와 index를 설정한 컬럼의 index type이 B-tree 구조로 되어있는 것을 확인할 수 있다. B-tree 구조는 페이지나 블록으로 나누어 오름차순 정렬을 진행하고 각각의 페이지 첫번째 값을 루트 노드 페이지에 저장하여 루트 노드 부터 리프 노드까지 탐색하는 구조다. 값을 찾으면 탐색을 멈추는 Range Scan 의 특성을 가지고 수직적으로 먼저 탐색하고 수평적으로 탐색한다. 조회의 성능을 향상시킬 목적으로 index를 설정하는데 카디널리티가 낮은 컬럼을 사용하면 오히려 성능이 떨어지고 조회 명령이 아닌..

    [mysql] homebrew 로 mysql 설치 시 오류 해결

    상황 mysql -uroot root계정으로 접속을 하려 할 때 에러 발생 에러 ERROR! The server quit without updating PID file ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' 위의 에러로 인해 구글링을 시작하였다. 많은 정보들이 나왔고 이를 따라 해봤는데 계속 접속이 안되어 하루 반나절을 날려먹은 경험을 적어보려합니다. 단계 첫번 째 에러같은 경우는 권한의 문제로 발생하는 문제라 나온다. 1. PID kill $ ps -ef | grep mysql 위의 코드를 사용하여 mysql PID를 킬한다. 2. 디렉토리 소유권 변경 sudo chown -R _my..

    [DataBase] Index란?

    [DataBase] Index란?

    책에서 우리는 원하는 단어를 찾을 때 우리는 목차를 볼 때도 있고 단어를 정리한 페이지를 찾을 때도 있다. 우리는 이를 활용해서 시간을 절약할 수 있고, 여기서 목차는 인덱스라 말한다. 이와 같은 인덱스는 자료를 찾을 때 시간을 절약할 수 있게 만든다. 한편으로는 책의 페이지 수가 늘어난다는 점이다. 이제는 인덱스에 대해 이해가 조금은 갈 것이다. 탐색 알고리즘에서 우리는 해쉬 테이블과 이진 트리를 접했다. 이진 트리는 자식이 2개 이하인 트리를 말하고 root 노드가 하나 있고 그 밑에 하위 노드들이 뿌리처럼 가지고 있다. 해쉬 테이블은 해쉬 함수를 통해 주소 값을 참조하고 새로운 테이블을 만들어 관리하는 식이다. 인덱스는 이러한 원리로 동작하게 된다. 해쉬 테이블 (Hash Table) 해쉬 테이블은..

    [JDBC] JDBC 란 무엇일까

    [JDBC] JDBC 란 무엇일까

    학습내용 JDBC 에 대한 이해 여러 종류의 DBMS 각 회사의 DBMS 는 의 코드가 다르다 문제 각 회사의 코드들을 알아야함. DBMS 변경시 코드 수정이 매번 일어남. JDBC 각 회사의 DBMS를 사용하는데의 문제점을 개선하고 단일화 시킨 java api 이다. 사용 순서 드라이버 로드 연결 생성 문장 실행 결과집합 사용