MySQL cho phép nhiều kết nối từ một người dùng hoặc nhiều người dùng . Trong một kết nối đó, nó sử dụng nhiều nhất một lõi CPU và thực hiện một câu lệnh SQL tại một thời điểm.
Một "giao dịch" có thể bao gồm nhiều câu lệnh SQL trong khi giao dịch được xử lý về mặt nguyên tử. Xem xét ứng dụng ngân hàng cổ điển:
BEGIN;
UPDATE ... -- decrement from one user's bank balance.
UPDATE ... -- increment another user's balance.
COMMIT;
Các câu lệnh đó được thực hiện tuần tự (trong một kết nối duy nhất); hoặc tất cả chúng đều thành công hoặc tất cả chúng đều thất bại như một đơn vị ("về mặt nguyên tử").
Nếu bạn cần thực hiện mọi việc "song song", hãy có một ứng dụng khách (hoặc các ứng dụng khách) có thể chạy nhiều luồng (hoặc quy trình) và mỗi luồng tự tạo kết nối với MySQL.
Một ngoại lệ nhỏ:Có một số luồng bổ sung 'nằm dưới vỏ bọc' để thực hiện các tác vụ nền như đọc trước hoặc ghi chậm hoặc xả nội dung. Nhưng điều này không cung cấp cho người dùng một cách để "thực hiện hai việc cùng một lúc" trong một kết nối.
Những gì tôi đã nói ở đây áp dụng cho tất cả các phiên bản của MySQL / MariaDB và tất cả các gói ứng dụng khách đang truy cập chúng.