Điều đang xảy ra ở đây là MySQL đang thực hiện ĐẶT HÀNG BẰNG cách xây dựng một bảng tạm thời từ sự kết hợp của hai bảng. Bảng tạm thời quá lớn để vừa với bộ nhớ nên MySQL sẽ tạo một tệp tạm thời.
Có một số điều có thể ngăn điều này hoạt động chính xác. Không gian đĩa thô là một. ulimit là một cái khác. Nếu điều này đang được lưu trữ, chúng có thể có hạn ngạch sử dụng đĩa của bạn (ngoài ulimit).
Tôi sẽ đề nghị thêm một điều khoản giới hạn vào truy vấn của bạn. Hiện tại, bạn tải toàn bộ rss_posts và rss_feeds vào bảng tạm thời để sắp xếp. Nếu bạn chỉ muốn 10 gần đây nhất, đó là nhiều dữ liệu hơn bạn thực sự cần.
SELECT posts.id, posts.post_title
FROM rss_posts AS posts INNER JOIN rss_feeds AS feeds ON posts.blog_id=feeds.id
WHERE feeds.blog_language=1
AND posts.post_data_db > (now - interval 30 day);
ORDER BY posts.post_date_db DESC LIMIT 10;