2022년 3월 29일 TIL

yshjft·2022년 3월 29일
0

데브코스 TIL

목록 보기
7/45

MySQL

MariaDB

  • 오픈 소스로 무료
  • MySQL과 인터페이스는 동이라하나 성능은 더 좋다.

MySQL 특징

  • 용량은 부족할 경우 scale-up을 사용한다.
    • scale-up은 서버의 자원(CPU, 메모리)를 늘리는 방법이다.
    • 만약 scale-up이 더 이상 불가능하다면 정말 필요한 데이터만 저장하고 있는지 생각해봐야한다.
  • scale-out은 서버의 수를 늘리는 방식이다.
    • 하지만 MySQL은 이 방법을 사용할 수 없다.
    • 단 MySQL은 Master-Slave 구조는 사용할 수 있다.
      • 이 방법은 읽기의 경우 성능을 향상 시킬 수 있지만 쓰기는 아니다. 쓰기는 모두 Master에서 처리해야하기 때문이다 .

클라우드

  • 컴퓨팅 자원(하드웨어, 소프트웨어 등 )을 네트워크를 통해 서비스 형태로 제공한다.
  • 자원을 필요한만큼만 실시간으로 할당하여 지불한다.

장점

비용을 줄일 수 있다.

Docker

  • 프로그램과 필요한 기타 소프트웨어들을 하나의 패키지로 만듬으로써 해당 프로그램의 개발과 사용을 도와주는 오픈소스 플랫폼
  • 도커 엔진 위에서 프로세스가 실행되는 것이다.

Session

  • 세션
    사용자의 방문을 논리적인 단위로 나눈 것
    • 한 사용자는 다수의 세션을 가질 수 있다.
    • 외부 링크를 타고 오거나 직접 방문하는 경우 새로 세션을 생성한다.
    • 방문 후 30분 동안 interaction이 없다가(세션 제거됨) 뭔가를 하는 경우 새로 세션을 생성한다.
    • 세션의 목적 중 하나가 어떻게 사이트에 접근했는지 알기 위해서 이다 → FOR 마케팅

DDL

필드(컬럼) 속성

PRIMARY KEY

  • 레코드의 유일성을 정의한다.
  • primary key uniquness constraint(중복 방지)
  • COMPOSITE PRIMARY KEY: PRIMARY KEY가 2개 혹은 그 이상의 필드로 정의된 것이다.
CREATE TABLE channel (
	id int not null auto_increment primary key, // COMPOSITE PRIMARY KEY 설정 불가능
    ...
);

CREATE TABLE channel (
   id int not null auto_increment, 
   ...
   primary key(id) // COMPOSITE PRIMARY KEY 설정 가능
)

FOREIGN KEY

  • 다른 테이블의 필드에서 오는 값을 갖는 경우
  • 다른 테이블의 PRIMARY KEY이다.
CREATE TABLE session (
  id int not null auto_increment primary key,
  ...
  channel_id int not null,
  foreign key(channel_id) references channel(id)
);

NOT NULL

필드의 값이 항상 존재해야 한다.

DEFAULT

  • 필드에 값이 주어지지 않은 경우 기본값을 정의해준다.
  • DEFAULT CURRENT_TIMESTAMP
  • CURRENT_TIMESTAMP: 현재 시간으로 설정
profile
꾸준히 나아가자 🐢

0개의 댓글