Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL के साथ गलत कुंजी फ़ाइल

यहाँ क्या हो रहा है MySQL दो तालिकाओं के जुड़ने से एक अस्थायी तालिका बनाकर ORDER BY कर रहा है। अस्थायी तालिका स्मृति में फ़िट होने के लिए बहुत बड़ी है इसलिए MySQL एक अस्थायी फ़ाइल बनाता है।

कुछ चीजें हैं जो इसे ठीक से काम करने से रोकती हैं। कच्चा डिस्क स्थान एक है। उलिमिट एक और है। यदि इसे होस्ट किया जा रहा है, तो उनके पास आपके डिस्क उपयोग (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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या किसी के पास इस बात का पर्याप्त प्रमाण है कि CHAR, VARCHAR से तेज़ है?

  2. पायथन में MySQL चेतावनियों को फँसाना

  3. एक ही आईडी की कई पंक्तियों के लिए अलग-अलग मान चुनें

  4. MySQL प्रदर्शन अनुकूलन:डेटाटाइम फ़ील्ड द्वारा ऑर्डर करें

  5. MySQL STR_TO_DATE त्रुटि पर शून्य