2012-07-05 55 views
17

Tôi cố gắng để trả lời những câu dưới đây như là một phần của phiên bản đại học của tôi:MySQL GIẢI THÍCH CẬP NHẬT

Tạo một chỉ mục trên ít nhất một thuộc tính của một bảng trong cơ sở dữ liệu 'nhân viên', nơi mà bạn sử dụng Công cụ 'GIẢI PHÁP' của MySQL thành hiển thị rõ ràng lợi ích (về mặt hoặc trả lại) và số âm (trong số điều khoản cập nhật) của việc tạo chỉ mục được đề cập.

Đối với phần đầu tiên tôi đã tạo ra một chỉ mục trên các nhân viên bảng và sử dụng các truy vấn sau đây trước và sau khi chỉ số để chứng minh điều đó là có lợi từ góc độ hồi:

EXPLAIN SELECT * FROM employees WHERE birth_date = '1953-09-02'; 

Chỉ số này có ảnh hưởng của việc giảm các hàng được truy cập từ 300.000 xuống chỉ còn 63.

Bây giờ, tôi đang bối rối về cách thực hiện phần thứ hai. Tôi hy vọng có thể sử dụng lệnh EXPLAIN với CẬP NHẬT nhưng không hoạt động.

Các CẬP NHẬT truy vấn tôi đang cố gắng để phân tích như sau:

UPDATE employee SET first_name = 'first_name' WHERE birth_date = '1953-09-02'; 

Đây có phải là một truy vấn phù hợp để trả lời câu hỏi và làm thế nào để tôi đi về phân tích.

Rất cám ơn trước.

Trả lời

32

EXPLAIN UPDATE tồn tại trong MySQL 5.6 nhưng không phải MySQL 5.5 bằng cách so sánh tài liệu của MySQL. Bạn đã thử trên máy chủ MySQL 5.6 chưa?

+0

Tôi không có tùy chọn di chuyển đến 5.6. Cách đề nghị để tìm ra lý do tại sao một bản cập nhật MySQL 5.5 là chậm nếu không có giải thích trong 5,5? –

+3

Giải thích kế hoạch hoạt động trong 5.5, trên các câu lệnh SELECT. Nếu bạn thực sự muốn xem tại sao cập nhật chậm, giả sử nó là mệnh đề where trong bản cập nhật chậm, hãy cố gắng thực hiện một kế hoạch giải thích trên câu lệnh select với mệnh đề where sẽ cho bạn một số gợi ý. Ngoài ra, bạn có thể sao chép db và nâng cấp lên 5.6 để thử nghiệm. –

+0

Bạn cũng có thể tham khảo bình luận của câu hỏi này. http://dba.stackexchange.com/questions/49788/query-execution-plan-for-mysql# –

10

Các tài liệu tham khảo doc của Mysql 5.6: http://dev.mysql.com/doc/refman/5.6/en/explain.html

Tính đến MySQL 5.6.3, được phép báo cáo giải thích được cho GIẢI THÍCH là SELECT, DELETE, INSERT, REPLACE, và UPDATE. Trước MySQL 5.6.3, SELECT là câu lệnh giải thích duy nhất.

Các vấn đề liên quan