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

CHỌN CẬP NHẬT giữ toàn bộ bảng trong MySQL thay vì từng hàng

Mức cách ly mặc định cho bảng InnoDB là đọc lặp lại. Khi mức cô lập này hoạt động, chúng tôi nhận được hành vi sau (trích dẫn từ: https://dev.mysql.com/doc/refman/5.5/en/set-transaction.html ):

Nói cách khác:bạn có thể thử sử dụng khóa chính trong điều kiện WHERE của SELECT? Vì vậy, ví dụ thay vì:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE status='free' limit 8 FOR UPDATE;

Hãy thử:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE id=10 FOR UPDATE;

trong trường hợp id là khóa chính. Bất kỳ cột nào khác có chỉ mục duy nhất trên đó cũng sẽ hoạt động. Khi sử dụng các cột không phải là duy nhất trong mệnh đề WHERE của bạn, InnoDB sẽ khóa một loạt các hàng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dữ liệu ký tự tiếng Tây Ban Nha MySql

  2. Giới thiệu về Chỉ mục SQL

  3. MYSQL chọn tham gia nhiều bảng và SUM

  4. Sử dụng node-mysql trong một hàm

  5. Làm thế nào để tìm vị trí gần nhất bằng cách sử dụng vĩ độ và kinh độ từ cơ sở dữ liệu SQL?