애플리케이션을 만들 때 중요한 것들이 굉장히 많다.
데이터는 얼마나 들어올지 고려해야 하고, 어느 정도 속도로 들어올지, 어떻게 접근하고, 저장할지, 조회할 때에는 어떤 식으로 조회해야 가장 빠른지 등등..
고려해야 할 부분들은 정말 많지만 그 중에서도 데이터를 조작하는데 있어 기본이 되는 스토리지 엔진에 대해 알아보고자 한다.
데이터를 처리(삽입, 조회, 수정, 삭제)하는 역할을 하는 모듈을 스토리지 엔진이라 한다.
💡 ACID ?
- A(atomicity)
- C(consistency)
- I(isolation)
- D(durability)
- closely tied to the notion of a transaction
💡 row-level-locking vs table-level-locking
- lock that prevents any other transaction from accessing a table. InnoDB makes considerable effort to make such locks unnecessary, by using techniques such as online DDL, row locks and consistent reads for processing DML statements and queries.
💡 외래키 참조 무결성 제약 ?
- 정의
- 지키면 좋은 점
💡 웨어하우싱(warehousing) ?
- 정의
# 엔지 확인 1
SHOW ENGINES;
# 엔지 확인 2
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';
위 명령어를 통해 서버에서 지원하는 모든 엔진응 확인할 수 있다.
# 엔진 설정
CREATE TABLE Cars(
Id INTEGER PRIMARY KEY
, Name VARCHAR(50),
-> Cost INTEGER) ENGINE='MyISAM';
* 테이블 생성 시 엔진 설정 가능
* ENGINE 키워드 통해 테리블 마다 엔진 설정 가능
* 다른 엔진으로도 변경 가능
* ALTER TABLE Cars ENGINE='MyISAM';
# 엔진 변경
ALTER TABLE myTable ENGINE = InnoDB;
❓데이터베이스 관리 시스템(DBMS)이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제(CRUD 참조)하는 데 사용하는 기본 소프트웨어 컴포넌트라고 하는데 어떻게 사용하며, 어떤 식으로 구성된 모양이지?