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: 현재 시간으로 설정