DB(25)
-
Elastic Search
Elastic Search의 개념 Elasticsearch란 아파치 루씬(Lucene) 기반의 오픈소스 실시간 분산 검색 엔진으로 JSON 기반의 비정형 데이터 분산 검색 및 분석을 지원합니다. 설치와 서버 확장이 매우 편리하며, 실시간 검색 서비스 지원, 분산 및 병렬처리, 그리고 멀티테넌시 기능을 제공하고 다양한 기능을 플러그인 형태로 구현하여 적용할 수 있는 것이 큰 특징입니다. 또한 클러스터로 구성할 수 있기 때문에 검색 대상의 용량이 증가했을 때 대응하기가 매우 수월합니다. Elastic Search의 검색이 빠른 이유 Elastic Search와 RDB의 비교 Elastic Search는 기존의 RDBMS와 데이터를 저장하는 방식이 다릅니다. 각 text들이 포함된 document들을 나열된 ..
2021.07.14 -
Dinstinct와 Group by의 차이
Distinct와 Group by의 차이 Distinct는 주로 Unique한 컬럼이나 레코드를 조회하는 경우에 사용됩니다. Group by는 주로 데이터를 그룹핑해서 결과를 가져오는 경우에 사용됩니다. 두 작업은 조금만 생각해보면 동일한 형태의 작업입니다. 일부 작업의 경우 Distinct로 Group by로도 처리할 수 있는 쿼리들이 있습니다. select distinct(fd1) from tab; => select fd1 from tab group by fd1위의 예시처럼 두 개의 쿼리는 바꿔서 실행할 수 있습니다. 그리고 이런 형태의 Distinct는 내부적으로 Group by와 동일한 코드를 사용합니다. 하지만 Distint는 정렬된 결과를 반환하지 않지만, Group by는 정렬된 결과를 보내..
2021.05.03 -
SQL 작성 7거지악
좌변을 가공하지 않기 DB 인덱스를 사용할 수 없는 경우 인덱스 컬럼이 비교되기 전에 변형이 일어나는 경우 부정형으로 조건을 기술(not)한 경우 인덱스 컬럼이 NULL로 비교되는 경우 옵티마이저가 필요에 다라 상기 적용원칙을 준수했음에도 불구하고 특정 인덱스의 사용을 취사선택함으로써 사용되지 않는 경우 위와 같은 경우에 인덱스를 사용할 수 없습니다. 그렇기 때문에 DB 컬럼을 가공하지 말고 상수 부분을 가공해서 사용하도록 작성합니다. 잘못된 경우 -- 인덱스 컬럼에 변형이 일어났기 때문에 인덱스 사용이 불가 SELECT dept , ename , sal FROM emp WHERE SUBSTR(job, 1, 4) = 'SALE' 바람직한 경우 SELECT dept , ename , sal FROM emp..
2021.04.01 -
MySQL Storage Engine
Storage Engine이란 Storage Engine의 개념 Storage Engine은 DBMS가 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제하는데 사용하는 기본 소프트웨어 컴포넌트입니다. MySQL의 스토리지 엔진은 데이터베이스 엔진을 조작할 때, 실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지부터 데이터를 읽어오는 부분을 DBMS 고유의 사용자 인턴페이스를 이용하는 방법과 포트 번호를 통해 하는 방법을 제공합니다. MySQL Storage Engine의 종류 MyISAM 특징 데이터 저장에 실직적인 제한이 없음 데이터를 매우 효율적으로 저장 빈번한 데이터 사용의 부하를 잘 소화함 B-tree, R-tree 그리고 Full-text Index를 지원 특정 Index에 대..
2020.11.25 -
DB Cluster
DB Cluster란 DB Cluster의 개념 DB Cluster란 디스크로부터 데이터를 읽어오는 시간을 줄이기 위해서 조인이나 자주 사용되는 테이블의 데이터를 디스크 내부에 같은 위치에 저장시키는 방법입니다. DB Cluster의 특징 그룹된 컬럼 데이터 행들이 같은 데이터 블록에 저장되기 때문에 디스크 I/O를 줄여줍니다. 클러스터된 테이블 사이에 조인이 발생할 경우 그 처리 시간이 단축 됩니다. 클러스터 키 열을 공유하여 한 번만 저장하므로 저장 영역의 사용을 줄입니다. 데이터 조회 성능을 향상 시키지만 데이터 저장, 수정, 삭제 또는 한 테이블 전체 Scan의 성능을 감소시킵니다. 클러스터 인덱스와 논 클러스터 인덱스 참조: https://brownbears.tistory.com/183
2020.11.20 -
MySQL Stored Procedure의 장단점
장점 DB의 보안이 향상됩니다. Stored Procedure는 자체적인 보안 설정 기능을 가지고 있으며, Stored program 단위로 실행 권한을 부여할 수 있습니다. 권한 제어가 가능하며, SQL 인젝션과 같은 기본적인 보안 사고를 피할 수 있습니다. 절차적 기능을 구현할 수 있습니다. SQL 문장에 IF/WHILE과 같은 제어 문장을 사용할 수 있습니다. 어떠한 어플리케이션을 사용하더라도 Stored Procedure를 이용한다면 값을 추출하는데 용이합니다. 개발 업무를 구분하여 진행할 수 있습니다. 순수하게 어플리케이션을 개발하는 조직과 DMBS 관련 코드를 개발하는 조직을 구분해 진행할 수 있습니다. DBMS 코드를 개발하는 조직은 트랜잭션 단위로 데이터베이스 관련 처리를 하는 Stored..
2020.09.17