Това, което се случва тук, е, че MySQL прави ORDER BY чрез изграждане на временна таблица от съединяването на двете таблици. Временната таблица е твърде голяма, за да се побере в паметта, така че MySQL създава временен файл.
Има няколко неща, които биха попречили на това да работи правилно. Необработеното дисково пространство е едно. ulimit е друго. Ако това се хоства, те може да имат квота за използване на вашия диск (в допълнение към ulimit).
Бих предложил да добавите ограничителна клауза към вашата заявка. В момента зареждате целия rss_posts и rss_feeds във временната таблица за сортиране. Ако искате само най-новите 10, това е много повече данни, отколкото наистина имате нужда.
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;