Open haiquang9994 opened 8 years ago
👍
Đây là cơ chế dội nước 1 lần 🚽 😄
MySQL Server và MySQL Client sẽ mở 1 connection (đường ống), khi save một cách bình thường (auto-commit) thì Client sẽ dội nước từng record, khoảng thời gian tiền - hậu xử lý cho mỗi lần là X, vậy nếu dội N lần thì sẽ tiêu tốn N * X
Do đó nếu cần cắt giảm tiêu tốn vô ích, ta trữ nước vào 1 pool (hồ) rồi dội một lần luôn cho tiết kiệm (cái này k nên ứng dụng ngoài đời nhé 🚽 )
Ngoài ra, nếu sử dụng Transaction này có thể đảm bảo được sự đúng đắn về data, như việc có lỗi (kẹt đường ống giữa chừng) thì ta có thể rollback
về trạng thái ban đầu. Ứng dụng này sử dụng trong các giao dịch mang tính trao đổi. Ví dụ ông A chuyển tiền cho bà B, nếu giữa đường đứt gánh thì tiền phải về ông A và bà B không nhận được đồng nào, tránh trường hợp cộng tiền ông A rồi ko kịp trừ tiền bà B đã sinh ra lỗi.
Khì tác vụ cần chạy nhiều dòng insert, update (vài trăm dòng :D) như Import từ file Excel. Thì ta đặt toàn bộ code xữ lý của Model giữa 2 câu lệnh sau.
use Sifoni\Model\DB;
Mới thử insert 1000 dòng mà mất có 2 3 giây :D