Chỉ để nói lên câu hỏi của tôi, tôi hiểu rằng không có hỗ trợ trực tiếp cho một cái gì đó như thế này. Những gì tôi đang tìm kiếm là bất kỳ loại công việc xung quanh, hoặc dẫn xuất phức tạp mà sẽ cho tôi một kết quả một nửa đáng kính.Theo dõi tiến độ truy vấn MySQL dài
Tôi đang làm việc với một cụm MySQL khá lớn (bảng> 400 triệu hàng) bằng cách sử dụng công cụ cụm.
Có ai biết cách để hoặc là truy xuất trực tiếp hoặc nói cách khác là có dấu hiệu tiến bộ chính xác (hoặc tốt hơn) thông qua truy vấn dài trong mysql không? Tôi có một số truy vấn có thể mất tối đa 45 phút và tôi cần xác định xem chúng tôi có 10% hoặc 90% thông qua quá trình xử lý hay không.
EDIT:
Theo yêu cầu trong các ý kiến đây là một phiên bản cất và generified của một của các truy vấn mà đang dẫn đầu cho câu hỏi ban đầu của tôi ...
SELECT `userId`
FROM `openEndedResponses` AS `oe`
WHERE
`oe`.`questionId` = 3 -- zip code
AND (REPLACE(REPLACE(`oe`.`value`, ' ', ''), '-', '') IN ('30071', '30106', '30122', '30134', '30135', '30168', '30180', '30185', '30187', '30317', '30004'));
Truy vấn này được chạy với một bảng đơn với ~ 95 triệu hàng. Mất 8 giây để chạy truy vấn và 13 giây để chuyển dữ liệu (tổng cộng 21 giây). Xem xét kích thước của bảng, và thực tế là có các chức năng thao tác chuỗi đang được sử dụng, tôi muốn nói nó đang chạy khá nhanh chết tiệt. Tuy nhiên, với người dùng, nó vẫn còn 21 giây xuất hiện hoặc bị mắc kẹt hoặc nhàn rỗi. Một số dấu hiệu của sự tiến bộ sẽ là lý tưởng.
Một truy vấn đơn lẻ mất tối đa 45 phút hoặc có rất nhiều truy vấn INSERT/UPDATE/DELETE nhỏ? –
Chỉ một truy vấn. – KOGI
KOGI, nếu bạn có thể giải quyết vấn đề của mình, bạn nên thêm nó làm câu trả lời. –