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

Khóa bàn ở chế độ ngủ đông

Bạn cần sử dụng khóa bi quan, có thể đạt được bằng cách

setLockMode(String alias, LockMode lockMode) 

trên truy vấn và sử dụng LockMode.UPGRADE .

Xem Query.setLockMode

Tuy nhiên, điều này chắc chắn sẽ giết chết khả năng mở rộng và hiệu suất nếu bạn đang thực hiện nhiều quyền truy cập trên bảng này. Tốt hơn bạn nên sử dụng một chuỗi hoặc một chiến lược khác là tạo một dịch vụ để phân bổ số (ví dụ:SSB), lấy 100 số cùng một lúc, cập nhật cơ sở dữ liệu và phân phát chúng. Điều đó giúp bạn tiết kiệm 198 lần truy cập cơ sở dữ liệu.

CẬP NHẬT:

Bạn cũng sẽ phải sửa đổi thiết kế bàn của mình một chút. Tốt hơn là có một hàng duy nhất với một ID đã biết và lưu trữ số bạn đang tăng trong một cột khác. Sau đó, bạn nên cập nhật hàng hơn là xóa hàng cũ và thêm hàng mới. Nếu không, chiến lược khóa hàng sẽ không hoạt động.

CẬP NHẬT2:

OP nhận thấy rằng cách sau hoạt động:

session.get(class.Class, id, lockOption)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thực thi truy vấn thô trên MySQL Loopback Connector

  2. PHP PDO:bộ ký tự, đặt tên?

  3. Số MAX là bao nhiêu nếu tôi lưu trữ int (255) trong MySQL?

  4. Nhận các giá trị trong 6 tháng qua trong mysql

  5. Làm thế nào để có được ngày cuối cùng của tháng trong MySQL