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

क्या यह MySQL में BIGINT कॉलम में इंडेक्स जोड़ने में मदद करेगा?

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

अनुक्रमणिका जोड़ने से पढ़ने . में सहायता मिलेगी गति, लेकिन आपके द्वारा भुगतान की जाने वाली कीमत थोड़ी धीमी है लिखें गति। ऑप्टिमाइज़ेशन करते समय हमेशा एक ट्रेड-ऑफ होता है, लेकिन आपके मामले में पढ़ने के समय में कमी बहुत अधिक होगी जबकि लिखने के समय में वृद्धि मामूली होगी।

ध्यान रखें कि किसी इंडेक्स को बड़ी तालिका में जोड़ने में काफी समय लग सकता है इसलिए इसे अपने उत्पादन सिस्टम पर लागू करने से पहले उत्पादन डेटा के विरुद्ध इसका परीक्षण करें। तालिका संभवतः ALTER TABLE . की अवधि के लिए लॉक की जाएगी बयान।

हमेशा की तरह, EXPLAIN का उपयोग करें निष्पादन रणनीति निर्धारित करने के लिए आपके प्रश्नों पर। आपके मामले में यह कुछ ऐसा होगा:

EXPLAIN SELECT * FROM table1 WHERE my_big_number=19287319283784


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरे द्वारा बनाई गई तालिकाएँ जो dotNetChat_ से शुरू होती हैं, MySQL को पुनरारंभ करने के बाद गायब हो जाती हैं

  2. अलग-अलग कॉलम में पहले और अंतिम नाम के साथ MySQL डेटाबेस में पूरा नाम या पहला या अंतिम नाम खोजना

  3. PHP Mysql का उपयोग कैसे करें ठीक से शामिल करें, हेडर त्रुटि से बचें

  4. ini_set, set_time_limit, (max_execution_time) - काम नहीं कर रहा

  5. #1055 - चयन सूची की अभिव्यक्ति ग्रुप बाय क्लॉज में नहीं है और इसमें गैर-समेकित कॉलम है यह sql_mode=only_full_group_by के साथ असंगत है