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

6 मिलियन पंक्ति तालिका पर मैसकल का प्रदर्शन

आप यह सुनिश्चित करना चाहते हैं कि क्वेरी केवल अनुक्रमणिका का उपयोग करेगी, इसलिए सुनिश्चित करें कि अनुक्रमणिका आपके द्वारा चुनी जा रही सभी फ़ील्ड को कवर करती है। साथ ही, चूंकि यह एक श्रेणी क्वेरी शामिल है, इसलिए आपको पहले इंडेक्स में वेनिड होना चाहिए, क्योंकि इसे स्थिरांक के रूप में पूछताछ की जाती है। इसलिए मैं इस तरह बनाऊंगा और अनुक्रमित करूंगा:

ALTER TABLE events ADD INDEX indexNameHere (venid, date, time);

इस इंडेक्स के साथ, क्वेरी को पूरा करने के लिए आवश्यक सभी जानकारी इंडेक्स में होती है। इसका मतलब यह है कि, उम्मीद है, स्टोरेज इंजन वास्तव में टेबल के अंदर ही बिना जानकारी प्राप्त करने में सक्षम है। हालाँकि, MyISAM ऐसा करने में सक्षम नहीं हो सकता है, क्योंकि यह डेटा को इंडेक्स की पत्तियों में संग्रहीत नहीं करता है, इसलिए हो सकता है कि आपको अपनी इच्छा की गति में वृद्धि न मिले। यदि ऐसा है, तो तालिका की एक प्रति बनाने का प्रयास करें, और प्रतिलिपि पर InnoDB इंजन का उपयोग करें। वहां समान चरणों को दोहराएं और देखें कि क्या आपको महत्वपूर्ण गति वृद्धि मिलती है। InnoDB करता है इंडेक्स के पत्तों में फ़ील्ड मानों को स्टोर करें, और इंडेक्स को कवर करने की अनुमति दें।

अब, उम्मीद है कि जब आप प्रश्न की व्याख्या करेंगे तो आपको निम्नलिखित दिखाई देंगे:

mysql> EXPLAIN SELECT date, time FROM events WHERE venid='47975' AND date>='2009-07-11' ORDER BY date;

id  select_type table  type  possible_keys        key       [..]  Extra
1   SIMPLE   events range date_idx, indexNameHere indexNameHere   Using index, Using where


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php . में एक mysql डीबी में हिब्रू मान कैसे सम्मिलित करें

  2. SQL - किसी अन्य तालिका से गणना का उपयोग करके ऑर्डर कैसे करें

  3. कॉलबैक से नोडजेएस वापसी मूल्य

  4. व्यक्ति आईडी द्वारा प्रत्येक व्यक्ति का योग प्राप्त करें

  5. छवि फ़ाइलों या URL को MySQL डेटाबेस में संग्रहीत करें? कौनसा अच्छा है?