Transactions trong MariaDB
Giao dịch (Transactions) là các thao tác nhóm được thực hiện theo trình tự, hoạt động như một đơn vị duy nhất và không kết thúc cho đến khi tất cả các thao tác trong nhóm được thực thi thành công. Nếu có bất kỳ thao tác nào trong nhóm thất bại, toàn bộ giao dịch sẽ bị hủy bỏ và không gây ảnh hưởng đến cơ sở dữ liệu.

Các giao dịch tuân theo nguyên tắc ACID trong MariaDB
Atomicity (Tính nguyên tử): Đảm bảo tất cả các thao tác trong giao dịch đều thành công; nếu có lỗi xảy ra, toàn bộ giao dịch sẽ bị hủy bỏ và các thay đổi được hoàn tác.
- Consistency (Tính nhất quán): Đảm bảo rằng cơ sở dữ liệu chỉ ghi nhận các thay đổi khi giao dịch hoàn thành thành công, giữ cho dữ liệu luôn ở trạng thái hợp lệ.
- Isolation (Tính độc lập): Cho phép các giao dịch độc lập thực thi song song mà không bị ảnh hưởng lẫn nhau.
- Durability (Tính bền vững): Đảm bảo rằng các thay đổi của một giao dịch thành công sẽ được lưu giữ vĩnh viễn ngay cả khi xảy ra lỗi hệ thống.
Quá trình thực hiện một giao dịch thường bắt đầu bằng câu lệnh START TRANSACTION (hoặc BEGIN), theo sau là các câu lệnh thao tác dữ liệu (như SELECT, UPDATE, INSERT, DELETE), sau đó là câu lệnh kiểm tra lỗi (nếu có), và cuối cùng là COMMIT để ghi nhận các thay đổi. Nếu phát hiện lỗi, câu lệnh ROLLBACK sẽ được sử dụng để hoàn tác toàn bộ giao dịch.
Ví dụ về cấu trúc một giao dịch:
Bài viết này được đăng tại [free tuts .net]
START TRANSACTION; SELECT name FROM products WHERE manufacturer = 'XYZ Corp'; UPDATE spring_products SET item = name; COMMIT;
Lưu ý:
- Một số câu lệnh có thể tự động kích hoạt COMMIT ngầm, và gây lỗi nếu được sử dụng trong giao dịch. Ví dụ như các câu lệnh CREATE, ALTER, và DROP.
- MariaDB còn hỗ trợ các tùy chọn như SAVEPOINT (đặt điểm phục hồi để sử dụng với ROLLBACK) và LOCK TABLES (kiểm soát quyền truy cập bảng trong suốt phiên làm việc).
- Biến AUTOCOMMIT cho phép kiểm soát giao dịch: khi đặt giá trị 1, tất cả các thao tác được coi là giao dịch thành công; khi đặt giá trị 0, các thay đổi chỉ được lưu lại khi có câu lệnh COMMIT rõ ràng.
Thông qua việc hiểu rõ cấu trúc và cách thức hoạt động của giao dịch, bạn có thể đảm bảo tính nhất quán và an toàn cho dữ liệu trong cơ sở dữ liệu MariaDB của mình, đặc biệt trong các tình huống yêu cầu tính toàn vẹn của dữ liệu khi thực hiện nhiều thao tác liên tiếp.