cẩn thận, cắt ngắn và xóa là các câu lệnh sql hoàn toàn riêng biệt: - xóa là DML và cắt ngắn là DDL, có nghĩa là xóa được rollbacked và cắt ngắn không thể được khôi phục - xóa phải tìm từng hàng một. cắt ngắn là tức thời - xóa sử dụng undo log và cắt ngắn không
nếu bạn đặt nó tất cả cùng nhau: 1/nếu bạn muốn nó được rollbackable, bạn không muốn sử dụng truncate 2/nếu bạn sử dụng xóa , với kích thước của bảng bạn muốn để trống: - nếu bảng nhỏ, bạn sẽ thấy không có sự khác biệt - nếu bảng có kích thước trung bình, bạn sẽ gặp phải hiệu suất kém - nếu bảng lớn, bạn sẽ hết khoảng trống trong không gian bảng hoàn tác và bạn sẽ không thể để trống bất kỳ thứ gì
vì vậy, hãy cẩn thận với tuyên bố bạn thực sự muốn sử dụng.
làm cách nào để cắt bớt bảng bằng hql, nên cấm chạy DDL (cắt ngắn, tạo bảng, bảng thả, v.v ...) từ và ứng dụng. Bạn nên sử dụng xóa. Nhưng nếu bảng lớn, nó cũng sẽ không hoạt động. Đó là lý do tại sao làm trống một bảng trong một ứng dụng nói chung là một ý tưởng tồi. Nếu bạn muốn làm một số làm sạch, nó thường là tốt hơn để chạy truncate bên trong một kịch bản sql một lần mỗi đêm.
Lưu ý rằng tôi không biết chi tiết cụ thể về đơn đăng ký của bạn và chỉ nói chung
Cắt ngắn không phải là lệnh DML hoặc DDL tiêu chuẩn, do đó là bình thường không được hỗ trợ. –