sql >> Databáze >  >> RDS >> Mysql

Nesprávný soubor klíče s MySQL

Jde o to, že MySQL provádí ORDER BY vytvořením dočasné tabulky ze spojení dvou tabulek. Dočasná tabulka je příliš velká na to, aby se vešla do paměti, takže MySQL vytvoří dočasný soubor.

Existuje několik věcí, které by bránily správnému fungování. Surový diskový prostor je jeden. ulimit je další. Pokud je toto hostováno, může mít kvótu na využití vašeho disku (kromě ulimit).

Navrhoval bych přidat do vašeho dotazu omezující klauzuli. V současné době načítáte celé rss_posts a rss_feeds do dočasné tabulky pro třídění. Pokud chcete pouze posledních 10, je to mnohem více dat, než skutečně potřebujete.

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. Jaký je nejlepší rámec vysoké dostupnosti PostgreSQL? PAF vs. repmgr vs. Patroni Infographic

  2. Mohu nastavit výchozí schéma pro v rámci uložené procedury?

  3. Tabulky, jejichž jediným účelem je určit podmnožinu jiné tabulky

  4. MySQL Prepare Statement – ​​Maximální délka 1000 znaků