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

myisam đặt khóa bảng trên bàn ngay cả khi xử lý truy vấn 'chọn'?

MyISAM có nhiều loại khóa khác nhau. A SELECT hoạt động đặt một KHÓA ĐỌC trên bàn. Có thể có nhiều khóa đọc đang hoạt động tại bất kỳ thời điểm nào, miễn là không có KHÓA VIẾT đang hoạt động . Các thao tác sửa đổi bảng, ví dụ. INSERT , UPDATE , DELETE hoặc ALTER TABLE đặt WRITE LOCK trên bàn. Khóa ghi chỉ có thể được đặt trên bàn khi không có khóa đọc nào đang hoạt động; Nếu có các khóa đọc đang hoạt động, MyISAM sẽ xếp hàng để khóa ghi được kích hoạt ngay sau khi tất cả các khóa đọc đang hoạt động hết hạn.

Tương tự như vậy khi có một khóa ghi đang hoạt động, việc cố gắng đặt một khóa đọc trên bảng sẽ xếp hàng khóa (và truy vấn được liên kết) cho đến khi khóa ghi hết hạn trên bảng.

Cuối cùng, tất cả điều này có nghĩa là:

  • Bạn có thể có bất kỳ số lượng khóa đọc đang hoạt động nào (còn được gọi là khóa chia sẻ)
  • Bạn chỉ có thể có một khóa ghi đang hoạt động (còn được gọi là khóa độc quyền)

Để biết thêm thông tin, hãy xem: http://dev.mysql. com / doc / refman / 5.5 / en / internal-lock.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể bỏ bảng:Ràng buộc khóa ngoại không thành công

  2. loại cha con đệ quy mysql (cây)

  3. Nhiều bảng hoặc hàng, cái nào hiệu quả hơn trong SQL?

  4. Dữ liệu chuỗi, bị cắt ngắn bên phải:1406 Dữ liệu quá dài cho cột

  5. Nhiều bản cập nhật trong MySQL