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

inno db mức cách ly và khóa

InnoDB thiết lập các loại khóa cụ thể như sau.

  • SELECT ... FROM là cách đọc nhất quán, đọc ảnh chụp nhanh của cơ sở dữ liệu và không đặt khóa trừ khi mức cách ly giao dịch được đặt thành SERIALIZABLE. Đối với mức SERIALIZABLE, tìm kiếm đặt các khóa khóa tiếp theo được chia sẻ trên bản ghi chỉ mục mà nó gặp phải.

  • CHỌN ... TỪ ... CHẾ ĐỘ KHÓA CHIA SẺ đặt các khóa khóa tiếp theo được chia sẻ trên tất cả các bản ghi chỉ mục các cuộc gặp gỡ tìm kiếm.

  • Đối với các bản ghi chỉ mục các lần gặp tìm kiếm, SELECT ... FROM ... FOR UPDATE chặn các phiên khác thực hiện SELECT ... FROM ... LOCK IN SHARE MODE hoặc đọc ở các mức cách ly giao dịch nhất định. Các lần đọc nhất quán sẽ bỏ qua bất kỳ khóa nào được đặt trên các bản ghi tồn tại trong chế độ xem đã đọc.

  • CẬP NHẬT ... WHERE ... đặt khóa phím tiếp theo độc quyền trên mọi bản ghi mà tìm kiếm gặp phải.

  • DELETE FROM ... WHERE ... đặt khóa phím tiếp theo độc quyền trên mọi bản ghi mà tìm kiếm gặp phải.

  • INSERT đặt một khóa độc quyền trên hàng được chèn. Khóa này là khóa ghi chỉ mục, không phải khóa tiếp theo (nghĩa là không có khóa khoảng cách) và không ngăn các phiên khác chèn vào khoảng trống trước hàng được chèn.

InnoDB có một số loại khóa mức bản ghi:

  • Khoá bản ghi:Đây là khoá trên bản ghi chỉ mục.

  • Khoá khoảng cách:Đây là khoá khoảng cách giữa các bản ghi chỉ mục hoặc khoá khoảng cách trước bản ghi chỉ mục đầu tiên hoặc sau bản ghi chỉ mục cuối cùng.

  • Khóa phím tiếp theo:Đây là sự kết hợp giữa khóa bản ghi trên bản ghi chỉ mục và khóa khoảng cách trên khoảng trống trước bản ghi chỉ mục.

Xem thêm:

Tránh sự cố bóng ma bằng cách sử dụng khóa phím tiếp theo

Tránh bế tắc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong Python, nếu tôi có dấu thời gian unix, làm cách nào để chèn dấu thời gian đó vào trường datetime của MySQL?

  2. Làm thế nào để làm tròn xuống số nguyên gần nhất trong MySQL?

  3. truy vấn sql để trích xuất các bản ghi duy nhất

  4. Mở kết nối cơ sở dữ liệu ở đâu và khi nào

  5. Tôi không thể sử dụng các hàm mysql_ * sau khi nâng cấp PHP