데이터베이스에서 효율적인 조회를 위해 사용되는 중요한 요소 중 하나는 바로 인덱스(Index)입니다. 인덱스는 대용량의 데이터에서 특정 정보를 빠르게 찾기 위한 자료구조로, 책의 색인과 유사한 개념입니다. 오늘은 데이터베이스 인덱스의 장단점에 대해 좀 더 자세히 살펴보겠습니다. 인덱스의 장점 1. 데이터 검색 속도 향상: 인덱스의 주요 목적은 검색 성능의 향상입니다. 인덱스를 사용하면 데이터베이스는 전체 데이터를 스캔하지 않고 원하는 결과를 빠르게 반환할 수 있습니다. 2. 정렬된 데이터 접근 용이: 인덱스는 데이터를 정렬된 상태로 유지하므로 ORDER BY 절의 사용이 많은 쿼리에서 성능 향상을 가져올 수 있습니다. 3. 데이터 집합 연산 최적화: 인덱스는 데이터베이스가 테이블 간의 JOIN 연산이나 ..
Database
디비를 사용하면서 백업 & 복구를 할 필요가 생길 거 같아 예제로 연습할까 한다. 디비는 https://github.com/datacharmer/test_db 을 사용하였다. (DB는 employees 을 사용하였고, table 역시 employees를 사용하였다.) 일단 기본적인 사용 예제 몇 가지만 적겠다. 옵션 설명 예시 --all-database --database [DB명] 모든 DB dump특정 DB dump mysqldump -u root -p --all-database > allDatabase.sqlmysqldump -u root -p --database employees> allDatabase.sql --no-data데이터 없이mysqldump -u root -p -all-database..
설치 환경 OS : CentOS7 Version : 5.6.15 ※ 순서대로 설치를 안하시면 오작동 확률이 높습니다. 1. mysql 설치하기 위해 필요한 패키지 설치 [root@localhost home]# yum -y install gcc gcc-c++ ncurses ncurses-devel cmakeyum perl perl-Data-Dumper 2. mysql 설치 [root@localhost home]# wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz [root@localhost home]# tar xvfz mysql-5.6.15.tar.gz [root@localhost home]# cd mysql-5.6.15 3. C..
커넥션 풀을 설명하기 앞서 DB를 사용하는 과정을 간략히 이야기 하겠다. 1. DB 드라이버를 로딩한다. 2. DB서버를 접근하기 위한 커넥션 객체를 생성한다. 3. preparedstatement을 통하여 쿼리를 적용한다. 4. 쿼리 적용 후 resultset이라는 객체를 통해 데이터를 얻는다. 5. 쿼리 동작 후에는 close를 통하여 리소스를 반환한다. 여러 클라이언트에서 request를 할 때마다 DB서버에 접속을 하다보면 나중에는 웹 어플리케이션이 다운되는 상황까지 올 수도 있다. 이러한 문제점을 방지하기 위해 생긴 것이 커넥션 풀(connection pool) 이다. 첨부 : https://www.ibm.com/developerworks/data/library/techarticle/dm-110..
정규화(normalization)이란 데이터의 중복과 이상을 막기 위해 테이블을 구조화시키는 작업을 의미한다. 제1정규화 *번호 타이틀가수이름 배급사 노래 1 아이유 5집 아이유 JYP 좋은날, .... 2 원더걸스 2집 원더걸스 SM tell me, .... 3 싸이 3집 싸이 SM 강남스타일, ..... '노래'라는 속성은 여러 원자들로 쪼개질 수 있다. 예를 들면 '아이유 5집'이라는 앨범이 있다고 치면, 노래는 하나가 아닌 여러 노래로 구성되기 때문이다. 이 부분에 있어서는 제1정규화를 위반했다고 볼 수 있다. *앨범번호 타이틀 가수이름배급사이름 1아이유 5집아이유 JYP 2원더걸스 2집원더걸스 SM 3싸이 3집싸이 SM *노래번호 타이틀 길이(재생길이)앨범번호 1좋은날5분1 2tell me4분2..