복붙노트

[SQL] mysql을 / SQLSERVER에서 삭제 대 잘라야의 비교 [중복]

SQL

mysql을 / SQLSERVER에서 삭제 대 잘라야의 비교 [중복]

한 가지 mysql을 / SQL 서버 즉 삭제 / 잘라 내기 대해 내 머리에 붙어

어느 것이 더 빠르다?

여기서 삭제 사용 하는가?

여기서 잘라야를 사용 하는가?

해결법

  1. ==============================

    1.지우다

    지우다

    TRUNCATE

    http://beginner-sql-tutorial.com/sql-delete-statement.htm

  2. ==============================

    2.가장 중요한 차이점은 DELETE 작업이 트랜잭션 안전하고 롤백 할 수 있습니다 DELETE 의미하는 기록이다. TRUNCATE는 트랜잭션 내부에서 수행 할 수 없으며 롤백 할 수 없습니다. TRUNCATE가 실수로 잘릴 테이블을 복구 기록되지 않습니다 있기 때문에 DELETE에서 회복보다 훨씬 더 큰 문제입니다.

    가장 중요한 차이점은 DELETE 작업이 트랜잭션 안전하고 롤백 할 수 있습니다 DELETE 의미하는 기록이다. TRUNCATE는 트랜잭션 내부에서 수행 할 수 없으며 롤백 할 수 없습니다. TRUNCATE가 실수로 잘릴 테이블을 복구 기록되지 않습니다 있기 때문에 DELETE에서 회복보다 훨씬 더 큰 문제입니다.

    외래 키 제약 조건이 깨진 경우 실패합니다 삭제; TRUNCATE는 외래 키 제약 (이 InnoDB 테이블의 경우와) 존경하지 않을 수 있습니다. DELETE 트리거에 어떤 실행됩니다 DELETE; TRUNCATE는하지 않습니다.

    자르기 작업을 삭제하고 훨씬 빠르게 특히 큰 테이블에 대해 하나의 행 하나를 삭제하는 것보다 테이블을 다시 만듭니다.

    테이블 세트 비어 있음, 1로 자동 증가 키를 재설정해야하는 경우. 이 모든 데이터를 삭제하기 때문에 더 빠른 DELETE 이상입니다. DELETE은 영향을받은 행의 수를 생성하기 위해 테이블을 검색합니다.

    필요 행은 WHERE 절 옵션에 따라 삭제합니다. 필요 로그 및 외래 키 제약 조건을 적용

  3. ==============================

    3.삭제 명령은 테이블에서 행을 제거하는 데 사용됩니다

    삭제 명령은 테이블에서 행을 제거하는 데 사용됩니다

    TRUNCATE 테이블에서 모든 행을 제거합니다. 작업은 롤백 할 수 없습니다 더 트리거 해고되지 않습니다. 따라서, TRUNCATE 빠른이며, DELETE만큼 실행 취소 공간으로 사용하지 않습니다.

  4. ==============================

    4.차:

    차:

    1) 자르기는 삭제 다음 ID로 시작하는 반면 1로 시작합니다 테이블과 다음 자동 증가 ID와 전체 데이터를 삭제합니다. 2) 모두 그대로 구조를 유지에만 데이터 삭제됩니다. 3) 삭제와 함께 당신은 당신이 할 수없는 잘라 내기와 반면에 제한을 사용할 수 있습니다.

  5. from https://stackoverflow.com/questions/20559893/comparison-of-truncate-vs-delete-in-mysql-sqlserver by cc-by-sa and MIT license