sql >> Base de Datos >  >> RDS >> Mysql

Archivo de clave incorrecto con MySQL

Lo que está pasando aquí es que MySQL está haciendo el ORDEN POR construyendo una tabla temporal a partir de la unión de las dos tablas. La tabla temporal es demasiado grande para caber en la memoria, por lo que MySQL crea un archivo temporal.

Hay algunas cosas que evitarían que esto funcione correctamente. El espacio en disco sin procesar es uno. ulimit es otro. Si esto está alojado, es posible que tengan una cuota en el uso de su disco (además de ulimit).

Sugeriría agregar una cláusula limitante a su consulta. Actualmente, carga la totalidad de rss_posts y rss_feeds en la tabla temporal para ordenar. Si solo desea los 10 más recientes, son muchos más datos de los que realmente necesita.

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;