Tôi gặp vấn đề lạ. Tôi đang chạy một truy vấn MySQL đối với một bảng rất lớn từ PHP. Thời gian truy vấn là hơn một phút, nhưng đó không phải là vấn đề của tôi. Có vẻ như PHP đang gửi lại truy vấn sau mỗi 66 giây.Truy vấn MySQL Khởi động lại sau mỗi 60 giây?
show processlist;
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| 150018 | root | localhost | amrs | Query | 32 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
Một vài phút sau, tôi đã kiểm tra một lần nữa:
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| 150018 | root | localhost | amrs | Query | 188 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
| 150021 | root | localhost | amrs | Query | 122 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
| 150023 | root | localhost | amrs | Query | 56 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
Tôi đã không được nạp lại trang hoặc bất cứ điều gì. set_time_limit (0) được gọi gần đầu của tập lệnh. Phần gây phiền nhiễu là, trang dường như được liên kết với trang chạy gần đây nhất. Vì vậy, nếu tôi giết 150018, không có gì xấu xảy ra, nhưng nếu tôi giết 150023 trước khi một cái khác được sinh ra, trang sẽ xuất hiện với một lỗi "Thực hiện truy vấn bị gián đoạn". 150018 cuối cùng sẽ tự kết thúc chạy nhưng nó không thực hiện tốt bởi vì tập lệnh/trang sẽ không nhận được.
Bất kỳ ai có ý tưởng nào?
EDIT: hiển thị đầy đủ processlist đưa ra sau (với một số dòng loại bỏ cho ngắn gọn và bảo mật):
+--------+---------+-------------------+----------+---------+-------+--------------+-----------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+--------+---------+-------------------+----------+---------+-------+--------------+-----------------------------------------------------
| 147385 | root | localhost:44560 | amrs | Sleep | 14021 | | NULL
| 150248 | root | localhost | NULL | Query | 0 | NULL | show full processlist
| 150251 | root | localhost | amrs | Query | 1 | statistics | /*DEREK*/select ctlno, count(*) AS count from (snip)
+--------+---------+-------------------+----------+---------+-------+--------------+-----------------------------------------------------
bạn có thể chỉ cho chúng tôi kết quả của lệnh này: 'hiển thị toàn bộ proceslist;' ngay sau khi thực hiện truy vấn? (mở 2 kết nối, # 1 = truy vấn của bạn, # 2 = truy vấn này) –
Nó trông giống như tôi mong đợi. Tôi bỏ qua một vài dòng liên quan đến các truy vấn khác, như tôi đã làm ở trên nhưng tôi đã giải quyết nó ở trên. – Derek
bạn có thể hiển thị cấu trúc bảng không? không có mệnh đề where? –