tôi chạy truy vấn sau đây từ vỏ của tôi:MySQL Query với số lượng lớn các hồ sơ bị giết
mysql -h my-host.net -u myuser -p -e "SELECT component_id, parent_component_id FROM myschema.components comp INNER JOIN my_second_schema.component_parents related_comp ON comp.id = related_comp.component_id ORDER BY component_id;" > /tmp/IT_component_parents.txt
Các truy vấn chạy trong một thời gian dài và sau đó bị giết.
Tuy nhiên, nếu tôi thêm LIMIT 1000
, thì truy vấn sẽ chạy đến cuối và đầu ra được ghi trong tệp.
tôi tiếp tục điều tra và tìm thấy (sử dụng COUNT (*)) mà tổng số lượng hồ sơ sẽ được trả lại là 239553163.
Một số thông tin về máy chủ của tôi là ở đây:
MySQL 5.5.27
+----------------------------+----------+
| Variable_name | Value |
+----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |
+----------------------------+----------+
Dưới đây là NHÀ NƯỚC của truy vấn như tôi theo dõi:
copying to tmp table on disk
sorting results
sending data
writing to net
sending data
writing to net
sending data
writing to net
sending data ...
KILLED
Có đoán xem có gì sai ở đây không?
Tôi đã có suy nghĩ đó để chia kết quả thành các phần nhỏ hơn. Nhưng cố gắng để xem nếu có một workaround để có được rằng thực hiện trong một shot :) Vâng, tôi cần tất cả các hàng. Nó được yêu cầu bởi nhiệm vụ mà tôi đang cố gắng hoàn thành. Cảm ơn vì tiền hỗ trợ. –
@ManmohanBishnoi Bạn đang kết nối với một máy chủ chia sẻ hay bạn sở hữu máy chủ DB? Trong trường hợp đầu tiên, máy chủ lưu trữ có thể đã thực hiện tốt một cái gì đó mà giết chết các truy vấn dài (tôi nghĩ đó là những gì "KILLED" thông báo có nghĩa là). Chia sẻ máy chủ có thể (hy vọng;) thực hiện những điều như vậy để bảo vệ hệ thống của họ một lần nữa các cuộc tấn công giống như DoS. – RandomSeed
Đây là một Instance lớn của Amazon RDS. Tôi đã chạy truy vấn LONG cho INSERT/UPDATE với số lượng bản ghi tương tự. vì vậy tôi đoán tôi phải hỏi DBA của tôi về điều này. –