| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- grafana on kubernetes
- 메탈LB
- Aurora cluster
- helm
- EKS 클러스터
- github action 사용법
- blue-green
- LoadBalancer Controller
- EFS CSI Driver
- 쿠버네티스
- headless service
- 솔데스크
- 딥레이서 보상함수
- terraform
- jenkins
- 딥레이서
- livenessPorbe
- 깃허브 액션
- Kubernets on Jenkins
- Solution Architecture
- Kubernetes
- 로드밸런서 컨트롤러
- SAA 합격 후기
- Firelens
- kubernetes 동작 원리
- AWS 딥레이서
- 그라파나 대시보드
- 쿠버네티스 컴포넌트
- 그라파나 시각화
- Prometheus install
Archives
mingming
Oracle - DELETE & TRUNCATE 본문
DLETE 와 TRUNCATE
DELETE 와 TRUNCATE 는 둘 다 데이터 베이스 테이블에서 데이터를 제거하는 SQL 명령문입니다.
DELETE
- DELETE 문은 데이터 베이스 테이블에서 특정 조건을 만족하는 행을 삭제하는데 사용됩니다.
- DELETE 문은 COMMIT 전 롤백(undo)이 가능하며, 행을 삭제하기 전에 트랜잭션 로그에 해당 삭제 작업을 기록합니다. 따라서 롤백을 실행해 이전 상태로 데이터를 복원할 수 있습니다.
- DELETE 문은 조건에 따라 삭제할 행을 선택적으로 지정할 수 있으며, 특정 조건을 만족하는 행만 삭제할 수 있습니다.
TRUNCATE
- TRUNCATE 문은 데이터베이스 테이블에서 모든 행을 한 번에 제거하는데 사용됩니다.
- TRUNCATE 문은 롤백이 불가능하며 삭제 작업을 트랜잭션 로그에 기록하지 않습니다. 따라서 롤백 후에 데이터는 연구적으로 삭제됩니다.
- TRUNCATE 문은 테이블의 모든 행을 삭제하므로 조건을 지정하여 일부 행만 삭제할 수 없습니다.
DELETE 와 TRUNCATE 차이
- DELETE는 DML 문으로 명령을 실행할 때 트랜잭션이 발생하여 오버헤드가 커지게 됩니다. 명령 실행 후 UNDO 에 작업 내용을 기록하게 되고, 불필요한 리소스들이 데이터 베이스 안에 존재하게 됩니다.
- 반면, TRUNCATE 문은 DML 문이 아닌 DDL 문으로 트랜잭션을 발생시키지 않습니다. 삭제 속도가 매우 빠릅니다.
| DELETE | TRUNCATE | |
| 종류 | DML | DDL |
| COMMIT | 사용자 COMMIT | AUTO COMMIT |
| ROLLBACK | 가능 | 불가능 |
| 로그 | 남김 | 남기지 않음 |
| 작업 속도 | 느림 | 빠름 |
| 저장 공간 | 유지 | 반납 |
'새싹 하이브리드 클라우드 > Database' 카테고리의 다른 글
| Oracle - 집합연산자 (2) | 2023.10.08 |
|---|---|
| Oracle - Subquery (1) | 2023.10.07 |
| Oracle - 제약 조건 & Subquery (2) | 2023.10.07 |
| Oracle - SQL (DDL) (4) | 2023.10.07 |
| Oracle - SQL (DML) (0) | 2023.10.07 |