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

Tại sao cam kết không gây ra bế tắc

Tôi nghi ngờ đây là một trường hợp cạnh không đáng để làm cho hiệu quả hơn. Lưu ý rằng bạn phải có 3 phiên để cố gắng lấy cùng một hàng - một điều hiếm khi xảy ra. Và bạn đã làm một cuộc ROLLBACK - cũng rất hiếm. Vì vậy, bế tắc xảy ra là quá mức cần thiết, nhưng không đáng để sửa chữa. Vì lý do này, người ta phải chuẩn bị để xử lý các bế tắc ở mọi nơi.

FYI, Nếu đây là 3 nút của một cụm Galera, thì sẽ có lỗi trên COMMIT mà mã sẽ phải xử lý. Tôi nghi ngờ rằng có nhiều sự kết hợp kỳ lạ hơn nữa đang diễn ra nếu bạn áp dụng giao dịch này (có khôi phục hoặc cam kết) nhiều lần cho nhiều nút.

Bây giờ cho câu hỏi của bạn ... Có lẽ bế tắc đã không xảy ra vì một trong các chuỗi có khóa độc quyền và chuỗi còn lại bị nhấn "chờ" thay vì "khóa".




  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ử dụng từ khóa SQL làm tên bí danh của một cột

  2. Trong đó A =1 VÀ A =2 trả về vấn đề hàng 0 - (Câu hỏi Mysql ngắn)

  3. thay đổi auto_increment trong cùng một bảng bằng cách sử dụng truy vấn con mysql

  4. MYSQL:Bảng số tuần tự

  5. CURRENT_TIMESTAMP tính bằng mili giây trong h2