मेरे पास 10^7 पंक्तियों के साथ एक माईसाम तालिका है। डेटा जोड़ने पर, मुझे अंत में ~ 10 पंक्तियां अपडेट करनी होंगी। क्या उन्हें हटाने के लिए तेज़ है और फिर नए डालें, या क्या उन पंक्तियों को अपडेट करना तेज़ है? डेटा जो अद्यतन किया जाना चाहिए सूचकांक का हिस्सा नहीं है। इंडेक्स/डेटा विखंडनMySQL प्रदर्शन हटाएं या अद्यतन करें?
उत्तर
UPDATE
बहुत तेज़ है।
जब आप UPDATE
, तालिका रिकॉर्ड केवल नए डेटा के साथ फिर से लिखे जा रहे हैं।
जब आप DELETE
, अनुक्रमित अद्यतन किया जाना चाहिए (याद रखें, आप पूरी पंक्ति, न केवल कॉलम आप संशोधित करने की आवश्यकता हटाना) और datablocks ले जाया जा सकता है (यदि आप PCTFREE
सीमा तक नहीं पहुंच)
और यह सब यह फिर से INSERT
पर किया जाना चाहिए।
यही कारण है कि आप हमेशा
INSERT ... ON DUPLICATE KEY UPDATE
बजाय REPLACE
का उपयोग करना चाहिए है।
एक प्रमुख उल्लंघन के मामले में पूर्व UPDATE
ऑपरेशन है, जबकि बाद वाला एक DELETE
/INSERT
है।
के बारे में क्या अपडेट करना तेज़ है। तुम भी पर नकली चाबी अद्यतन सम्मिलित उपयोग कर सकते हैं
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
अधिक जानकारी के लिए पढ़ने के लिए अद्यतन documentation
तार्किक रूप से हटाएँ + जोड़ें = 2 कार्यों, अद्यतन = 1 कार्रवाई। नए परिवर्तनों को हटाने और जोड़ने के लिए auto_increment पर रिकॉर्ड आईडी, इसलिए यदि उन अभिलेखों में रिश्तों को तोड़ दिया जाएगा, या अपडेट की भी आवश्यकता होगी। मैं अद्यतन के लिए जाना होगा।
एक अद्यतन का उपयोग करते हुए जहां कॉलम = 'कुछ' को इंडेक्स में खोज मानदंडों के रूप में एक सूचकांक का उपयोग करना चाहिए (चाहे वह एक खोज या स्कैन एक पूरी तरह से अलग मुद्दा है)।
यदि आप इन अद्यतनों को बहुत कुछ कर रहे हैं लेकिन मानदंड कॉलम पर कोई अनुक्रमणिका नहीं है, तो मैं आपके द्वारा उपयोग किए जा रहे कॉलम पर एक अनुक्रमणिका बनाने की अनुशंसा करता हूं। जो चीजों को गति में मदद करनी चाहिए।
प्रदर्शन के लिए डेटा हटाने या अपडेट करने की बजाय, मैं विभाजन पर विचार करता हूं।
http://dev.mysql.com/doc/refman/5.1/en/partitioning-range.html
यह आपको ऐतिहासिक डेटा बनाए रखने के और प्रदर्शन नीचा नहीं की अनुमति देगा।
- 1. MySQL पंक्तियां हटाएं, या "मृत" चिह्नित करें?
- 2. MYSQL INSERT या अद्यतन अगर
- 3. लॉगिंग केवल mysql प्रश्नों को सम्मिलित, अद्यतन और हटाएं
- 4. mysql अद्यतन
- 5. MySQL अद्यतन का उपयोग करके हाइफ़न को कैसे हटाएं?
- 6. सिद्धांत इकाई हटाएं क्वेरी हटाएं, प्रदर्शन तुलना
- 7. प्रदर्शन प्रश्न: डिप्लिकेट कुंजी अपडेट बनाम अद्यतन (MySQL)
- 8. प्रदर्शन अद्यतन - WPF
- 9. अद्यतन mysql
- 10. अद्यतन बनाम INSERT प्रदर्शन
- 11. एक या बहुत कम प्रश्नों में एकाधिक MySQL पंक्तियों का प्रदर्शन क्रम अद्यतन करना
- 12. यूनिट परीक्षण सम्मिलित/अद्यतन/हटाएं
- 13. mysql में अद्यतन/हटाएं और प्रभावित पंक्ति आईडी की सूची प्राप्त करें?
- 14. mysql + अद्यतन शीर्ष n
- 15. MySQL: वापसी अद्यतन पंक्तियों
- 16. एक mysql अद्यतन आदेश को पूर्ववत करें
- 17. स्थानीय फ़ाइल से MySQL तालिका अद्यतन करें
- 18. MySQL व्याख्या अद्यतन
- 19. mysql अद्यतन आदेश
- 20. MySQL अद्यतन सब्सक्रिप्ट
- 21. अजगर MYSQL अद्यतन बयान
- 22. MySQL अद्यतन कॉलम +1?
- 23. MySQL बैच अद्यतन
- 24. MySQL प्रदर्शन: बनाम कहां
- 25. PHP - MySQL - पंक्ति हटाएं
- 26. दुविधा: कैस्केड हटाएं या हटाएं
- 27. MySQL InnoDB का चयन करें ... बनाम अद्यतन ... सीमा 1
- 28. सीएसवी बनाम MySQL प्रदर्शन
- 29. पोस्टग्रेज़: सभी टेबल हटाएं या हटाएं कैस्केड करें?
- 30. MySQL, हटाएं और अनुक्रमणिका संकेत
दोस्त, आप 3 मिनट पर तेजी से थे, यह कितना अन्याय है ?!) –