sql >> Database teknologi >  >> RDS >> Mysql

Forkert nøglefil med MySQL

Det, der foregår her, er, at MySQL udfører ORDER BY ved at bygge en midlertidig tabel fra sammenføjningen af ​​de to tabeller. Den midlertidige tabel er for stor til at passe ind i hukommelsen, så MySQL opretter en midlertidig fil.

Der er et par ting, der ville forhindre dette i at fungere korrekt. Rå diskplads er én. ulimit er en anden. Hvis dette bliver hostet, kan de have en kvote på dit diskforbrug (ud over ulimit).

Jeg vil foreslå, at du tilføjer en begrænsningsklausul til din forespørgsel. I øjeblikket indlæser du hele både rss_posts og rss_feeds i den midlertidige tabel til sortering. Hvis du kun vil have de seneste 10, er det meget mere data, end du virkelig har brug for.

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;


  1. Mysql - vælg id'er, der matcher alle tags

  2. Opsætning af Django og PostgreSQL på to forskellige EC2-instanser

  3. Hvordan virker contains() i PL-SQL?

  4. mysql FULLTEXT søg flere ord