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

Percona 5.6 InnoDB समस्या अनुक्रमणिका का सही ढंग से उपयोग नहीं कर रही है

ऐसा लगता है:बग #70617 डिफ़ॉल्ट स्थायी आंकड़े अनपेक्षित लंबी क्वेरी समय का कारण बन सकते हैं

इसके लायक क्या है, यह पेरकोना बग नहीं है, यह MySQL 5.6 समुदाय संस्करण में भी मौजूद है।

तीन संभावित समाधान हैं:

  1. अनुकूलक को तालिका संदर्भों को पुन:क्रमित न करने का संकेत देने के लिए STRAIGHT_JOIN का उपयोग करें।

    SELECT STRAIGHT_JOIN
      i.item_name, i.item_key, i.item_date, f.format_long
    FROM items i
    INNER JOIN formats f
      ON i.item_format = f.format_id
    WHERE i.item_private = 0 
    ORDER BY i.item_id DESC LIMIT 8
    

    मैंने आपके जॉइन को SQL-92 सिंटैक्स का उपयोग करने के लिए फिर से लिखा है, जिसकी मैं अनुशंसा करता हूं।

  2. नए InnoDB परसिस्टेंट आँकड़े को अक्षम करें सुविधा, 5.6 से पहले के व्यवहार पर वापस लौट रही है।

    आपकी my.cnf फ़ाइल में:

    innodb_stats_persistent=0
    
  3. डेटा में महत्वपूर्ण परिवर्तन करने के बाद मैन्युअल रूप से InnoDB अनुकूलक आँकड़े ताज़ा करें (उदाहरण के लिए, mysqldump लोड करने के बाद):

    ANALYZE TABLE items;
    ANALYZE TABLE formats;
    

पुनश्च:मैं पेरकोना में काम करता हूं, और इस बग की खोज मेरे सहयोगी Justin Swanhart ने की थी। ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pyodbc 64-बिट कैसे स्थापित करें?

  2. जहां स्थिति में mysql कॉलम द्वारा समूह का उपयोग करता है

  3. यह जांचने का सबसे अच्छा तरीका है कि कोई पंक्ति MySQL तालिका में मौजूद है या नहीं

  4. एकाधिक LIMITS के साथ MySQL क्वेरी

  5. PHP और MySQL सबसे छोटी और सबसे बड़ी संभावित तिथि