스키마가 경직되어 테이블을 변경하는 것이 어려움특정한 시기에만 이벤트가 발생하여 이벤트 시기의 주문을 구분하고 싶을 때 ,대량의 데이터의 수정이 발생해 리스크가발생함데이터 중복을 피하기 위해 정규화를 진행하는데, 이로인해 과도한 join이 발생하여 성능 하락이 발생할
신뢰성을 위해 백엔드 서버와 DB서버는 TCP기반으로 동작하는데, connection을 연결하고 해제할 때 시간적인 비용이 많이 발생하게 됨이를 방지하기 위해 미리 TCP 연결을 여러개 만들어 놓고, 사용하지 않은 connection pool을 사용해 DB 쿼리를 처리
데이터베이스를 더 작은 데이터베이스로 나누는 것을 partitioning이라고 함collum을 기준으로 테이블을 나누는 vertical partioning, row를 기준으로 파티션을 나누는 horizontal partitioning이 있음vertical partion
조건을 만족하는 튜플들을 빠르게 조회, 정렬, 그룹핑하기 위해서는 인덱스를 사용해야 함인덱스를 사용하기 위해서는 SQL에서 CREATE INDEX문 사용테이블의 인덱스를 확인하고 싶으면 SHOW INDEX문 사용인덱스를 생성하면 인덱스 값과 실제 튜플을 연결하는 포인터
https://www.youtube.com/watch?v=JwfQ8ouhAzA&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=21https://www.youtube.com/watch?v=JwfQ8ouhAzA&list
Trasaction은 데이터베이스의 단일한 논리 작업 단위를 의미함논리적인 이유로 여러 SQL문을 하나로 나누어 나뉠 수 없게 한 것Transaction의 SQL문 중에 일부만 성공해 DB에 반영될 수는 없음DB가 자동으로 commit, rollback 처리를 하게