TIL💡/Database(27)
-
[MySQL] 596. Classes More Than 5 Students(GROUP BY, HAVING)
그룹 중 일부만 출력한다. SELECT class FROM Courses GROUP BY class HAVING COUNT(student) >= 5
2022.11.26 -
[MongoDB] Index의 자료구조는 무엇일까? B-Tree
MongoDB는여러 유형의 인덱스를 가지고 있다. 5.3부터는 Clutstered Index도 지원한다. Clustered Index의 장점 중 하나인 랜덤 액세스 없이 레코드를 읽는 기능은 빠른 range scan 속도를 자랑한다. 이외에도 다양한 인덱스가 존재한다. 참고: https://www.mongodb.com/docs/manual/indexes/ 그 중에서 MongoDB는 기본적으로 B-Tree를 기본 인덱스 구조로 지향한다. B-Tree의 인덱스 구조가 다른 인덱스의 구조에 비해 다음과 같은 장점이 있다. 1. 각 리프 노드가 동일한 깊이에 있기 때문에 균등한 응답속도를 보장한다. 하나의 컬렉션 내의 도큐먼트가 3~4개의 I/O 이상으로 떨어져 있지 않다. 2. B-Tree는 깊이가 최대 4개..
2022.10.15 -
[Python] Celery로 비동기 실시간 데이터 적재 및 분석 처리
데이터 분석을 위해 데이터를 적재한 뒤, 스케줄러를 돌리며 주기적으로 데이터를 분석하는 시스템을 실시간(Realtime) 처리 시스템으로 바꾸는 일에 투입되었다. 이를 위해 Celery라는 비동기 분산 큐 처리 라이브러리를 사용해보는 일에 도전했다. 이는 해야하는 일(task)이 즉시 이루어지지 않는 경우에 유리한 라이브러리이다. 예를 들어 문자 메시지를 전송하는 일이나 다수의 태스크가 동시 다발적으로 발생할 경우 작업이 누락되거나 중복되어 수행될 수 있기 때문에 주의 깊은 처리가 필요하다. 이러한 태스크를 위해 대기 중인 작업들을 관리하고, Worker에 작업을 제대로 전달하도록 Broker를 활용한다. Broker는 기본적으로 Queue라는 자료구조를 사용해 task를 보관한 뒤, Worker에 작업..
2022.09.09 -
[MongoDB] 소개와 설명
NHN 포스트에 상당히 잘 안내가 되어있어서 참고하면 좋다. https://meetup.toast.com/posts/275 특징 도큐먼트 데이터베이스 도큐먼트는 필드와 값의 쌍으로 구성되며, 관계를 갖는 데이터를 중첩 도큐먼트와 배열을 사용해 1개의 도큐먼트로 표현 유연한 스키마 스키마의 선언 없이 필드의 추가와 삭제가 자유로운 Schema-less 구조이다. 컬렉션 내 모든 도큐먼트들의 필드 집합이 동일하지 않고 같은 필드라도 데이터 타입이 다를 수 있는 비정형 스키마 비관계형 데이터베이스 RDBMS의 관계 개념이 없다. 조인을 지원하지 않는다. 대신 임베디드 방식의 도큐먼트 구조를 사용하거나 레퍼런스 방식의 도큐먼트 구조를 사용한 후 애플리케이션에서 조인 비트랜잭션 mongoDB는 트랜잭션을 지원하지..
2022.06.25 -
SQL 가독성을 높이는 다섯 가지 사소한 습관
1. 예약어는 대문자로 SELECT, FROM, GROUP BY, HAVING BY 등 SQL 예약어를 대문자로 작성한다. 2. 행갈이를 자주 하자 가독성을 향상할 수 있다. 3. 행갈이를 더! 자주 하자 SELECT day , time , SUM(total_bill) FROM tips WHERE sex = 'Female' AND smoker = 'Yes' GROUP BY day , time 만약 한 칼럼만 남기고 싶을 때 앞에 주석 처리를 하면 간편하게 코드를 수정할 수 있다. WHERE 조건절에서도AND, OR 이 붙을 때마다 행갈이를 해주면 조건에 대한 출력을 수정하기 간편하다. SELECT day -- , time , SUM(total_bill) FROM tips WHERE sex = 'Femal..
2022.06.10 -
[SQL] FROM절 JOIN 형태
ANSI/ISO SQL JOIN 설명 ANSI/ISO SQL에서 규정한 조인 문법은 WHERE 절에 조인 조건을 기술하는 전통적인 방식의 조인 문법과 차이가 있다. 사용자는 기존 WHERE 절의 검색 조건과 테이블 간의 조인 조건을 구분 없이 사용하던 방식으로 그대로 사용할 수 있으며, 추가된 선택 기능으로 테이블 간의 조인 조건을 FROM 절에서 명시적으로 정의할 수 있게 되었다. 가장 두드러지는 특징은 ON 조건절을 통해 JOIN 조건과 데이터 제한 조건을 분리해 기술하는 것이다. 전통적인 방식의 JOIN 문법에서는 WHERE 절에 JOIN 조건을 FROM 절의 ON 조건절로 분리해 표시함으로써 사용자가 이해하기 쉽도록 한다. ON 조건절의 경우 NATURAL JOIN처럼 JOIN 조건이 숨어 있지 ..
2022.03.29