मैं निम्न क्वेरीCOUNT (DISTINCT फ़ील्ड 1) के प्रदर्शन में सुधार कैसे करें ... फ़ील्ड 2 द्वारा समूह?
EXPLAIN SELECT COUNT(DISTINCT ip_address) as ip_address, exec_date
FROM requests
GROUP BY exec_date;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE requests range NULL daily_ips 263 NULL 488213 Using index for group-by (scanning)
एक कवर सूचकांक daily_ips
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
requests 1 daily_ips 1 exec_date A 16 NULL NULL YES BTREE
requests 1 daily_ips 2 ip_address A 483492 NULL NULL YES BTREE
के साथ वहाँ किसी भी तरह से मैं आगे इस क्वेरी अनुकूलन कर सकते हैं है है?
Using index for group-by (scanning)
का क्या अर्थ है? क्या इसका मतलब यह है कि पूरे GROUP BY
खंड पूरी तरह से एक इंडेक्स से किया जाता है जबकि COUNT(DISTINCT ip_address)
कथन का हिस्सा नहीं है?
धन्यवाद डैनी, जिज्ञासा से बाहर कोई तरीका है जो मैं बता सकता हूं कि 'ग्रुप-बाय (स्कैनिंग) के लिए इंडेक्स का उपयोग करना' ग्रुप-बाय 'या' डिस्टिंट 'क्लॉज पर लागू होने वाली इंडेक्स को संदर्भित करता है? – user784637
चूंकि 'DISTINCT' बस [ग्रुप बाय' का एक विशेष मामला है] (http://dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html), और चूंकि दोनों कॉलम आते हैं एक ही सारणी, एक ही सूचकांक, मैं ईमानदारी से यकीन नहीं कर रहा हूँ। –