Trong InnoDB, update
các câu lệnh khóa mọi hàng mà chúng quét. Điều này có nghĩa là để cập nhật 200 hàng của bạn, nó phải tạo 350 000 khóa cấp hàng, đồng thời giữ khóa khôi phục và cung cấp giá trị trước đó cho bất kỳ giao dịch nào đang đọc giá trị đã thay đổi (vì giao dịch không cam kết và thay đổi không phải là cuối cùng)
Mặt khác, MyISAM khóa toàn bộ bảng.
Vì vậy, nếu bạn cần cập nhật tất cả các hàng, hãy khóa toàn bộ bảng và bạn sẽ nhận được hiệu suất tốt hơn nhiều (bạn sẽ không cần khóa ở cấp độ hàng)
Nhưng tốt hơn nữa, hãy cung cấp mệnh đề WHERE, giống như bạn đã làm và InnoDB sẽ chỉ nhận được các khóa cho các hàng phù hợp (cũng như một số khóa khoảng trống trong cây chỉ mục, nhưng điều này nằm ngoài phạm vi của câu hỏi)