본문 바로가기

데이터베이스5

Redis 자료구조(Data Structures) Redis 자료구조Strings : Binary-safe 한 기본적인 key-value 구조Lists : 삽입 순서에 따라 정렬된 문자열 요소 컬렉션을 보유Sets : 고유한 멤버 집합을 저장Sorted sets : 부동 소수점 점수로 정렬된 고유한 멤버 집합Hashes : 내부에 sub-key - value를 하나 더 가지는 데이터 구조Bit arrays(bitMaps) : Binary 로직과 상태를 저장하는 압축 데이터 구조HyperLogLogs : 일정한 메모리 크기에서 고유 값을 계산하는 데 사용되는 확률적 데이터 구조Streams : 고속 데이터 스트림(예:메시지 대기열)을 관리하기 위한 데이터 구조Strings값은 최대 512mb단순 증감 연산에 좋음명령어 리스트 .. 2023. 5. 30.
트랜잭션 격리 수준(Transaction Isolation Level)에 대해서 트랜잭션(Transaction) 트랜잭션이란 여러 개의 작업을 하나로 묶은 작업의 단위(Unit Of Work)를 말한다. 특정 작업으로 시작해서 묶여 있는 모든 작업들을 다 완료되어야 성공으로 처리한다. 트랜잭션에 속해있는 여러 작업 중에서 하나 라도 실패하면 이 트랜잭션에 속한 모든 작업을 실패한 것으로 처리한다. 포함된 작업이 하나라도 실패하면 트랜잭션도 실패한다. 모든 작업이 성공하면 트랜잭션도 성공한다. 트랜잭션은 성공 또는 실패의 결과만을 갖는다. 데이터베이스 트랜잭션은 ACID라는 특성을 갖는다. A.C.I.D ACID는 트랜잭션을 정의하는 4가지 주요 속성인 원자성, 일관성, 격리성 및 내구성을 말한다. 원자성(Atomicity) 트랜잭션의 각 문(데이터 읽기, 쓰기, 업데이트 또는 삭제).. 2023. 5. 10.
SQL 실행 순서 알아보기 SQL문을 작성하다 보면 예상치 못한 SELECT가 발생하는 경우가 있다. 대개의 경우는 SQL 실행 순서에 대한 이해를 부족하여 발생한 에러들이 대다수였다. 순서만 알아도 대부분의 잘못된 SELECT 조회를 방지할 수 있다. 실행 순서(Order of Execution) FROM ON JOIN WHERE GROUP BY HAVING SELECT ORDER BY FROM / JOIN : 가장 먼저 실행되어 조회할 데이터를 결정합니다. ON : 조인에 대한 조건을 설정합니다. WHERE : 제약 조건을 충족하지 않는 레코드를 필터링합니다. GROUP BY : 특정 컬럼을 기반으로 데이터를 그룹화합니다. HAVING : 제약조건을 충족하지 않는 그룹화된 레코드를 제거합니다. SELECT : 원하는 모든 열과.. 2023. 5. 4.
JOIN에 대해서 알아보자 JOIN 5줄 요약 조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다. OUTER JOIN(외부 조인)은 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다. CROSS JOIN(상호 조인)은 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다. SELF JOIN(자체 조인)은 자신이 자신과 조인한다는 의미로, 1개의 테이블을 사용한다. INNER JOIN(내부 조인) 두 테이블을 연결할 때 가장 많이 사용하는 것이 내부 조인입니다. 그냥 조인이라고 부르면 내부 조인을 의미합니다. SELECT FROM INNER JOIN ON.. 2023. 3. 28.
CockroachDB 어떤 데이터베이스인가? 특히 이용자가 많은 모바일 게임의 메인 데이터베이스는 쓰기 위주(Write-Heavy) 워크로드에 적합하다. 그리고 이용자가 급격하게 늘어날 경우를 대비해서 빠르게 확장할 수 있어야 한다. 데이터베이스 종류 전통적 관계형 데이터베이스 MySQL, MsSQL, PostgreSQL 문서형 분산 데이터베이스 Couchbase, MongoDB, Cassandra 관리형 데이터베이스 DynamoDB CockroachDB 란 CockroachDB란 SQL 인터페이스를 지원하는 분산 데이터베이스입니다. 수평 확장이 가능하고, 다양한 종류의 물리적 장애에서 살아남을 수 있으며, 전 지구적인 스케일로 데이터베이스를 구축하고 관리할 수 있는 다양한 기능을 지원합니다. GitHub에 오픈소스로 공개되어 있고, 무료로 사용할.. 2023. 3. 6.