Làm thế nào tôi nên diễn giải thời gian khóa khóa của Google trong nhật ký truy vấn chậm mysql?


12

Tôi đang cố gắng hiểu cách diễn giải tốt nhất thời gian khóa cho các truy vấn hiển thị trên nhật ký truy vấn chậm MySQL của chúng tôi.

Chẳng hạn, nếu một truy vấn CẬP NHẬT có thời gian khóa 10 giây. Tôi đoán đó là tổng thời gian sau khi truy vấn cập nhật có được khóa. Ngay cả khi nó đang chờ các truy vấn chọn trước đó hoàn thành nhưng không tự thực hiện hành động CẬP NHẬT, đồng hồ sẽ được đánh dấu vì nó đang khóa tất cả các truy vấn CHỌN đã xếp hàng sau truy vấn CẬP NHẬT.

Và làm thế nào về các khóa truy vấn CHỌN. Làm thế nào đến một số truy vấn chọn có thời gian khóa? Có phải vì có một truy vấn CẬP NHẬT theo dõi do đó họ đang khóa một bảng với nhau.

Câu trả lời:


19

Các lock_timetrong nhật ký truy vấn chậm thực sự là khoảng thời gian truy vấn gian chờ đợi để có được khóa nó cần phải chạy. Ví dụ: UPDATEScác truy vấn cần một khóa ghi.

Việc khóa cũng phụ thuộc vào công cụ lưu trữ mà bạn đang sử dụng trong bảng. Khi viết, InnoDB sẽ sử dụng khóa cấp hàng và chỉ khóa các hàng đang được thay đổi. MyISAM sẽ khóa toàn bộ bảng cho đến khi cập nhật / chèn / xóa hoàn tất.

Việc khóa toàn bộ bảng cho MyISAM là một lý do lớn SELECTcác truy vấn sẽ có lock_time trong nhật ký truy vấn chậm của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.