본문 바로가기
728x90

💾Database & Server38

[ElasticSearch] ElasticSearch 기본 개념. Elasticsearch는 실시간 검색 및 분석을 위한 오픈 소스 분산 검색 엔진으로, 대용량 데이터를 신속하게 색인하고 검색할 수 있는 강력한 도구이다. 데이터베이스가 아닌 분산 검색/분석 엔진. Elasticsearch는 2010년에 Shay Banon에 의해 만들어졌다. 초기에는 Apache Lucene을 기반으로 하여 검색 기능을 제공하다가, 분산 시스템으로 확장하여 대규모 데이터 처리를 지원하게 되었다. 개념 Elasitcsearch는 주로 검색 및 분석 엔진으로 사용된다. 비정형/반정형 데이터를 JSON 형식으로 색인(index)하고, 강력한 쿼리르 사용하여 데이터를 검색한다. Elasticsearch Query DSL 쿼리를 사용하며, Match, Range, Wildcard 등의 다양한 쿼.. 2023. 10. 7.
[SQL] SQL Cookbook - 05. 메타 데이터 쿼리 메타데이터 쿼리는 데이터베이스나 시스템에서 데이터의 특성, 구조, 속성 등을 조회하고 검색하기 위한 쿼리로, 데이터의 정보를 분석하고 관리하는데 사용된다. *SMEAGOL이라는 스키마가 있다고 가정함. 1. 스키마의 테이블 목록 보기 특정 스키마에서 생성한 모든 테이블 목록 확인 # information_schema.ta bles를 쿼리 select table_name from information_schema.tables where table_schema = 'SMEAGOL' 2. 테이블의 열 나열하기 데이터 유형, 테이블의 열과 해당 열이 있는 테이블의 위치를 나열. # information_schema.columns를 쿼리 select column_name, data_type, ordinal_pos.. 2023. 10. 4.
[Redis] Redis란? 무엇이며 언제 사용하는지. 메모리 기반의 데이터 저장소로서, 데이터를 빠르게 읽고 쓸 수 있는 비관계형 데이터베이스이다. "REmote DIctionary Server"의 약자로, 키-값 구조를 사용하여 데이터를 저장하고 검색한다. 등장 배경 Redis는 2009년에 Salvatore Sanfilippo에 의해 개발되었다. 당시, 메모리 가격이 비싸고 디스크 I/O 속도가 느렸기 때문에, 실시간 응답이 필요한 웹 애플리케이션에서는 데이터베이스에서 데이터를 가져오는 것이 부담스러운 문제였다. 이에 대한 해결책으로 Redis는 데이터를 메모리에 저장하여 빠르게 응답할 수 있도록 하였다. In-memory Database : 특징 데이터 타입 다양성: Redis는 다양한 고유 데이터 타입(String, List, Hash, Set 등).. 2023. 10. 2.
[SQL] SQL Cookbook - 04.삽입, 갱신, 삭제 1. 새로운 레코드 삽입하기 모든 열을 추가할 때는 열 목록을 생략할 수 있다. # 단일 행 삽입 insert into dept (deptno, dname, loc) values (50, 'PROGRAMING', 'BALTIMORE') # 여러 행 삽입 insert into dept (deptno, dname, loc) values (1, 'A', 'B'), (2, 'B', 'C') 2. 기본값 삽입하기 default를 명시한 열은 insert시 값을 지정하지 않으면 디폴트 값으로 저장된다. # default create table D (id integer default 0, foo varchar(10)) insert into D (name) values ('Bar') 3. null로 기본값 오버라이딩하.. 2023. 9. 18.
[SQL] SQL Cookbook - 03.다중 테이블 작업 1. 행 집합을 다른 행 위에 추가하기 UNION : 중복된 행을 제거하고 두 개 이상의 쿼리 결과를 하나로 합친다. UNION ALL : 중복된 행을 제거하지 않고 두 개 이상의 쿼리를 결과를 합친다. /*EMP 테이블에 있는 부서 10의 사원명 및 부서 번호와 함께, DEPT 테이블에 이쓴ㄴ 각 부서명 및 부서 번호를 표시.*/ # UNION ALL select ename as ename_and_dname, deptno from emp where deptno = 10 union all select '---------', null from t1 union all select dname, deptno from dept 2. 연관된 여러 행 결합하기 JOIN : 두 개 이상의 테이블을 연결하여 관련된 데이.. 2023. 9. 8.
[SQL] SQL Cookbook - 02.쿼리 결과 정렬 1. 지정한 순서대로 쿼리 결과 반환하기 # ORDER BY select ename, job, sal from emp where deptno = 10 order by sal asc 2. 다중 필드로 정렬하기 order by 절에서 쉼표로 구분하여 여러 열을 나열하면 제일 왼쪽 열부터 우선순위를 가지고 정렬된다. # ORDER BY select empno, deptno, sal, ename, job from emp order by deptno, sal desc 3. 부분 문자열로 정렬하기 substr() 함수를 사용하여 문자열을 추출해 정렬할 수 있다. # ORDER BY, SUBSTR select ename, job from emp order by substr(job, length(job)-1) 4. 혼.. 2023. 9. 7.
[SQL] SQL Cookbook - 01.레코드 검색 1. 테이블의 모든 행과 열 검색하기 별표(*) 문자는 SQL문에서 특별한 의미를 가진다. *를 사용하면 지정된 테이블의 모든 행이 반환된다. select * from 테이블명 대화형으로 즉석에서 실행하는 쿼리는 *를 사용하면 좋지만 프로그램 코드를 작성할 때는 각 열을 개별 지정하는게 좋다. 성능은 같지만 쿼리에서 어떤 열을 반환하는지 명확하게 알 수 있으며, 다른 사용자가 이해하기 쉽다. 2. 테이블에서 행의 하위 집합 검색하기 테이블에서 특정 조건을 충족하는 행만 보기 위해서는 WHERE절로 가져올 행을 지정(필터링) 할 수 있다. select * from emp where deptno = 10 3. 여러 조건을 충족하는 행 찾기 여러 조건을 충족하는 행을 반환하기 위해서는 OR 및 AND절과 함께.. 2023. 8. 31.
[SQL] Join의 종류와 사용법 💡Join이란? 2개 이상의 테이블을 연결하여 하나의 테이블처럼 데이터를 검색 할 때 사용한다. Ex. SELECT 테이블.컬럼, 테이블.컬럼 FROM 테이블1,테이블2 WHERE 조건 Join의 종류 Inner Join 내부조인은 가장 많이 사용되는 조인 구문 중에 하나다. 내부 조인은 조인 Condition에 따라 2 개의 테이블(A, B)의 컬럼을 합쳐 새로운 테이블을 생성한다. 즉 교차 조인을 한 결과에 조인 조건문을 충족시키는 레코드를 반환한다고 생각할 수 있다. 1) SELECT 조회할 컬럼 FROM 테이블1, 테이블2 [WHERE 조건문] 2) SELECT 조회할 컬럼 FROM 테이블1 (INNER) JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼 [WHERE 추가조건] Natural.. 2023. 8. 29.
[Index] index 사용 방법 index 생성 테이블 생성 시 인덱스 생성 -- INDEX ( 칼럼명1, 칼럼명2 ) CREATE TABLE `books` ( `id` varchar(5) NOT NULL, `name` varchar(20) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`), INDEX `idx_test` (`name`) ); 인덱스 추가로 생성 -- CREATE INDEX ON ( 칼럼명1, 칼럼명2, ... ); CREATE INDEX idx_test ON books ( name ); 테이블에 추가 -- ALTER TABLE ADD INDEX ( 칼럼명1, 칼럼명2, ... ); ALTER TABLE books ADD INDEX idx_test ( name.. 2023. 8. 27.
728x90