Apa yang terjadi di sini adalah MySQL melakukan ORDER BY dengan membangun tabel sementara dari gabungan dua tabel. Tabel sementara terlalu besar untuk dimasukkan ke dalam memori sehingga MySQL membuat file sementara.
Ada beberapa hal yang akan mencegah ini bekerja dengan benar. Ruang disk mentah adalah satu. ulimit adalah hal lain. Jika ini di-host, mereka mungkin memiliki kuota pada penggunaan disk Anda (selain ulimit).
Saya akan menyarankan menambahkan klausa pembatas ke kueri Anda. Saat ini Anda memuat seluruh rss_posts dan rss_feeds ke dalam tabel sementara untuk disortir. Jika Anda hanya menginginkan 10 terbaru, itu lebih banyak data daripada yang Anda butuhkan.
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;