Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hành vi 'chọn để cập nhật' của MySQL

Hãy để tôi xem xét các trường hợp của bạn và giải thích cách hoạt động của những ổ khóa này:

1 trường hợp

T1 muốn cập nhật một số hàng trong bảng thử nghiệm của bạn. Giao dịch này đặt khóa IX trên tất cả bảng và khóa X trên 5 hàng đầu tiên.

T2 muốn cập nhật một số hàng trong bảng thử nghiệm của bạn. Giao dịch này đặt IX (vì IX tương thích với IX) khóa trên tất cả bảng và cố gắng đến 5 hàng đầu tiên nhưng không thể thực hiện được vì X không tương thích với X

Vì vậy, chúng tôi ổn.

2.1 trường hợp

T1 muốn cập nhật một số hàng trong bảng thử nghiệm của bạn. Giao dịch này đặt khóa IX trên tất cả bảng và khóa X trên 5 hàng đầu tiên.

T2 muốn chọn một số hàng từ bảng thử nghiệm của bạn. Và nó không đặt bất kỳ ổ khóa nào (vì InnoDB cung cấp các lần đọc không khóa)

2.1 trường hợp

T1 muốn cập nhật một số hàng trong bảng thử nghiệm của bạn. Giao dịch này đặt khóa IX trên tất cả bảng và khóa X trên 5 hàng đầu tiên.

T2 muốn cập nhật (chọn để cập nhật) một số hàng từ bảng thử nghiệm của bạn. Đặt IS trên toàn bộ bảng và cố gắng để khóa S trên hàng và không thành công vì X và S không tương thích.

Cũng luôn lưu ý về mức độ cô lập:mức độ khác nhau khiến cơ chế giải phóng / có được khóa khác nhau

Hy vọng nó sẽ hữu ích




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sắp xếp cây con trong cấu trúc dữ liệu phân cấp bảng đóng

  2. MySQL pid đã kết thúc (không thể khởi động mysql)

  3. mysql chọn dấu thời gian giữa a và b trả về tất cả hoặc 0 dấu thời gian

  4. MySQL Chọn WHERE trong thứ tự nhất định

  5. Dấu hai chấm trước một ký tự trong câu lệnh SQL có nghĩa là gì?