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

Mysql संग्रहीत कार्य और समूहवार न्यूनतम

समूहवार अधिकतम काम करने की गारंटी नहीं है। वास्तव में, मारियाडीबी ने इसे तोड़ दिया, लेकिन इसे वापस पाने के लिए एक सेटिंग प्रदान की। मैं इसका जिक्र कर रहा हूं:

SELECT  *
    FROM  
      ( SELECT  ...  ORDER BY ... )
    GROUP BY ...

जहां आप आंतरिक क्वेरी से प्रत्येक समूह में पहला (या अंतिम) चाहते हैं। समस्या यह है कि SQL उस आशय को दूर करने के लिए अनुकूलित करने के लिए स्वतंत्र है।

डॉक्स में समूहवार अधिकतम कोड बहुत ही अक्षम है।

क्वेरी को तेज़ करने के लिए, Rules . को अलग करने में मदद की एक संभावित बिट है या Places WHERE क्लॉज का हिस्सा और इसे एक सबक्वायरी में बनाएं जो संबंधित टेबल की सिर्फ PRIMARY KEY देता है। फिर उसे सभी टेबलों के साथ जॉइन में डालें (उसी टेबल पर वापस जॉइन सहित)। उस सबक्वेरी के लिए आपके पास पहले से ही एक "कवरिंग इंडेक्स" है ताकि यह "इंडेक्स का उपयोग" (EXPLAIN द्वारा इस्तेमाल किए गए शब्दजाल में) हो सके।

क्या innodb_buffer_pool_size उपलब्ध RAM के लगभग 70% पर सेट है?

बिगिनट 8 बाइट्स लेता है; आप शायद MEDIUMINT UNSIGNED (0..16M) के साथ रह सकते हैं। छोटा -> अधिक कैश करने योग्य -> ​​कम I/O -> तेज।

lat/lng के लिए DOUBLE की जोड़ी 16 बाइट्स लेती है। एक FLOAT जोड़ी 8 बाइट्स लेती है और इसमें 6-फुट / 2m रिज़ॉल्यूशन होता है। या DECIMAL(6,4) अक्षांश के लिए और (7,4) देशांतर के लिए 7 बाइट्स और एक 52 फुट/16m रिज़ॉल्यूशन के लिए। "स्टोर" के लिए काफी अच्छा है, खासकर जब से आप दूरी के लिए 'सर्कल' के बजाय 'स्क्वायर' का उपयोग कर रहे हैं।

"निकटतम खोजें ..." के लिए कोड को अनुकूलित करना कठिन है। यहां सबसे अच्छा मैंने दिया है:http://mysql.rjweb.org/doc .php/latlng




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक मदों द्वारा MySQL क्वेरी क्रम

  2. ये टेबल कैसे संबंधित हैं?

  3. ब्रू सेवाएं:कॉन्फ़िगरेशन कहां संपादित करें?

  4. एसक्यूएल:प्रतिच्छेदन के साथ सिंटेक्स त्रुटि?

  5. निष्पादन से पहले और कोडनिर्देशक सक्रिय रिकॉर्ड में निष्पादन के बिना इको क्वेरी