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

MySQL डिलीट स्टेटमेंट ऑप्टिमाइजेशन

अगर आपका DELETE . है उस तालिका की अधिकांश पंक्तियों को समाप्त करने का इरादा है, एक काम जो लोग अक्सर करते हैं वह है केवल उन पंक्तियों की प्रतिलिपि बनाना जिन्हें आप डुप्लिकेट तालिका में रखना चाहते हैं, और फिर DROP TABLE का उपयोग करें या TRUNCATE मूल तालिका को और अधिक तेज़ी से मिटाने के लिए।

एक अनुक्रमणिका उन पंक्तियों को ढूँढ़ने में मदद कर सकती है जिन्हें आपको हटाने की आवश्यकता है, लेकिन हटाने के लिए अनुक्रमणिका को अद्यतन करने की आवश्यकता होती है। बहुत सी पंक्तियों को हटाने के बाद, अनुक्रमणिका असंतुलित हो सकती है और इसके लिए OPTIMIZE TABLE के साथ कुछ रखरखाव की आवश्यकता होती है ।

DATE_SUB() फ़ंक्शन एक निरंतर अभिव्यक्ति है (यह पंक्ति दर पंक्ति भिन्न नहीं होती है) इसलिए क्वेरी ऑप्टिमाइज़र को इसे फ़ैक्टर करने और एक बार गणना करने के लिए पर्याप्त स्मार्ट होना चाहिए।

आपको प्राथमिक कुंजी के लिए अतिरिक्त अनुक्रमणिका बनाने की आवश्यकता नहीं है। प्राथमिक कुंजी बाधा परोक्ष रूप से एक इंडेक्स बनाता है जो गैर-प्राथमिक कुंजी इंडेक्स के समान लाभ देता है।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HTTPS के बिना PHP और MySQL में एक सुरक्षित लॉगिन स्क्रिप्ट बनाना

  2. मैं एक mysql डेटाबेस में एक post_id कैसे सम्मिलित करूं?

  3. PHP के साथ mysql क्रिएट फंक्शन स्टेटमेंट निष्पादित करें

  4. MySQL में बाइनरी स्ट्रिंग को स्टोर करना

  5. विदेशी कुंजी बाधा के साथ तालिका बनाना विफल हो जाता है गलत तरीके से बनाया गया है