MySQL, 클라우드, DDL 예제

어겐어갠·2022년 3월 29일
0

MySQL

프로덕션용 관계형 DB이다.

서버 1대를 기준으로 잡은 솔루션이다 -> 여러대 서버 분산은 안됌
그래서 설치가 쉽고 빠르다. But 데이터가 커지면 조금씩 힘들어진다.(용량 이슈)

종류로는 MySQL, MariaDB가 있다. (오라클 인수 과정에서 생긴 잡음으로 생긴 파생품. 결국 둘다 호환된다.)

용량이슈를 해결하는 방법

  1. Scale Up
    부족하면 CPU, Memory를 늘리는 것.
    (실제로는 중복, 불필요한 데이터를 정리, 제거하는 것이 매우 효율적)
  1. Scale Out
    일반적으로는 클러스터 구성을 이야기하나, 위에서 기술했듯 MySQL은 이게 불가능하다.
    slave 서버를 만들어 읽기전용으로 두어 효율을 올리는 방법

클라우드

컴퓨팅 자원을 네트워크를 통해 서비스하는 것.

  • 초기비용이 매우 저렴하다. (서비스 규모가 커질수록 비싸진다)
    OPEX(Operating Expense) / 반대 = CAPEX(Capital Expenditure)

  • 서버를 직접 설치할 필요가 없으므로 그에 관련된 부가적인 조건(설치 공간확보, 서버실 온도관리, 전기자원, 설치비용, 설치에 걸리는 시간)을 고려하지 않아도된다.

  • 만약 직접 설치를 한다면 PeakTime(ex 블랙프라이데이 등)을 기준으로 설비를 확보해야하므로, 특정 기간을 제외하면 자원들이 낭비되는 현상이 발생하게되는데 이를 막을 수 있다.

  • 글로벌 확장에 용이하다.

  • 소프트웨어 개발 시간 단축 (Managed Service (SaaS)) 이용

  • 대표적으로 AWS

DDL 관련

사용자 ID: 유일한 ID
세션 ID: 세션마다 부여되는 ID

세션이란?

사용자 방문에 대한 논리적인 단위
1. 시간기준 (구글 기준 별도의 행동없이 30분)
2. 방문기준 (방문시마다)

사용자는 여러 개의 세션을 가질 수 있다.
방문시의 경유지(이전 페이지)를 채널이라 부르며 마케팅을 위해 활용된다.

PRIMARY KEY

테이블에서 레코드의 유일성을 정의하는 필드 ex) 이메일 , 주민등록번호
Composite primary key: primary key가 두개 혹은 그 이상의 필드로 정의되는 경우
Primary key는 유일성이 보장(primary key uniqueness constraint)되어야한다.
대부분의 테이블은 기본키를 지니고있다. (즉, 간혹 없을수도 있다.)
또한 2개 이상 지닐 수도 있다.

속성으로 NOT NULL, AUTO_INCREMENT, PRIMARY KEY

Foreign key

테이블의 특정 필드가 다른 테이블의 필드에서 오는 값을 갖는 경우

속성 : NOT NULL

필드의 값이 항상 존재해야하는 경우

DEFAULT value

기본값을 정의해줌
timestamp 타입: CURRENT_TIMESTAMP를 사용하면 현재 시간으로 설정됨
(ex. DEFAULT CURRENT_TIMESTAMP)

profile
음그래

0개의 댓글