मैं एक MySQL डेटाबेस पर "बार से चयन करें (foo) क्वेरी" कर रहा हूं जो 7.3 मिमी रिकॉर्ड को जोड़ रहा है और लगभग 22 सेकंड प्रति रन ले रहा है। क्या MySQL में रकम को तेज करने के लिए कोई चाल है?क्या MySQL में एक योग() को तेज करना संभव है?
उत्तर
नहीं, आप फ़ंक्शन को तेज़ नहीं कर सकते हैं। यहां समस्या वास्तव में है कि आप 7.3 मिलियन रिकॉर्ड का चयन कर रहे हैं। MySQL को पूरी तालिका स्कैन करना है, और 7.3 मिलियन एक बहुत बड़ी संख्या है। मुझे प्रभावित है कि यह वास्तव में तेज़ खत्म होता है।
एक रणनीति आप को काम कर सकता है आपके डेटा (शायद तारीख? महीना?) के द्वारा छोटे सबसेट में तोड़ने के लिए और पुराने डेटा के लिए कुल राशि है कि बदलने के लिए नहीं जा रहा है बनाए रखने के लिए किया जाएगा। आप समय-समय पर योग को अपडेट कर सकते हैं, और कुल मूल्य की गणना राशि जोड़कर की जा सकती है, और उसके बाद से जोड़ा गया कोई भी नया डेटा, जो कि पंक्तियों की एक छोटी संख्या होगी।
नहीं, वास्तव में नहीं। इसे हमेशा तालिका में सभी पंक्तियों को गिनना होगा।
आप एक अतिरिक्त तालिका बनाने और हर डालने, अद्यतन पर वहाँ में योग को अपडेट कर सकता है, हटाना चाहते हैं?
अगर आपकी क्वेरी वास्तव में है कि सरल, नहीं ... लेकिन अपने एक अधिक जटिल क्वेरी उपयोग कर रहे हैं (और यह यहां संक्षिप्त) आप जा सकते थे (शायद) - का उपयोग कर बेहतर मिलती है ...
बारी की तरह MySQL में QUERY कैच पर। डिफ़ॉल्ट रूप से कैशिंग बंद है। आपको mysql ini फ़ाइल सेट करने की आवश्यकता है।
-- hint mysql server about caching
SELECT SQL_CACHE sum(foo) FROM bar;
MySQL ऑप्टिमाइज़र तालिका में कोई परिवर्तन नहीं किए जाने पर कैश वापस करने में सक्षम हो सकता है।
यहां अधिक पढ़ें: http://www.mysqlperformanceblog.com/2006/07/27/mysql-query-cache/
कैश किए गए मान को मूल्य के दौरान अपडेट किया जाएगा 'foo' का अपडेट हो जाता है? या अगली बार यह क्वेरी चलाने के बाद MySQL फिर पूरी तालिका को दोबारा जोड़ देगा? –
@ ब्लूराजा-डैनीफ्लूघोएफ्ट कैश साफ़ कर दिया जाएगा और यह पूरी तालिका को दोबारा जोड़ देगा। कॉलम का जिक्र करते हुए –
आप शायद bar.foo मैदान पर एक सूचकांक से जोड़ने का प्रयास कर सकते हैं। इंडेक्स में बार कॉलम के सभी मान होंगे, लेकिन मूल फू टेबल की तुलना में स्कैन करने के लिए तेज़ छोटा है, खासकर यदि foo में कई अन्य कॉलम हैं। यहाँ
निश्चित गलती। bar.foo होना चाहिए, foo.bar नहीं। @ हैरी-बी के लिए धन्यवाद – hongliang
दो बातें:
1) आप नियमित आधार पर 7.3m रिकॉर्ड के लिए राशि नहीं करना चाहिए - व्यापार की जरूरत (की सेवा दिन, महीने, साल, विभाग, आदि द्वारा मचान तालिकाओं) लागू करने और उन पर भरने अनुसूचित आधार, संभवतः मूल 'कच्चे' तालिका के बजाय उन तालिकाओं का पुन: उपयोग (जैसे संक्षेप मूल्य प्रत्येक दिन है जब आप कुछ दिनों के अंतराल की जरूरत के लिए, आदि का चयन)
2) अपने लेन-देन की जांच सेटिंग्स
http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html#isolevel_repeatable-read
- 1. mysql डंप और आयात को तेज करना
- 2. क्या डेटा को MySQL दृश्य में सम्मिलित करना संभव है?
- 3. MySQL क्वेरी में एक योग का औसत
- 4. बड़ी संख्या में mysql अद्यतनों और आवेषणों को तेज करना
- 5. क्या MySQL अद्यतन INSERT से तेज है?
- 6. क्या mysql TIMESTAMP को मिलीसेकंड से तुलना करना संभव है?
- 7. तेज, फ्लैट फ़ाइलें या एक MySQL रैम डेटाबेस क्या है?
- 8. क्या गिट में एक शाखा को उपनाम करना संभव है?
- 9. क्या सी # में एक कन्स्ट्रक्टर को ओवरराइड करना संभव है?
- 10. क्या कई चैनलों को एक में मल्टीप्लेक्स करना संभव है?
- 11. क्या कोल्डफ्यूजन में एक चर को अपरिभाषित करना संभव है?
- 12. क्या रूबी में एक चर को अपरिभाषित करना संभव है?
- 13. MySQL समूह योग
- 14. MyISAM से InnoDB में रूपांतरण को तेज करना
- 15. जार फ़ाइलों के साथ डीएक्स प्रक्रिया को तेज करना, क्या यह संभव है?
- 16. क्या मैवेन कलाकृतियों को डाउनलोड करना संभव है?
- 17. एक सामान्य क्वेरी से एक MySQL दृश्य तेज है?
- 18. MySQL मठ - क्या एक क्वेरी में एक सहसंबंध की गणना करना संभव है?
- 19. mysql सभी पंक्तियों का योग
- 20. एसओएलआर खोज को तेज करना
- 21. ब्लैकबेरी: सिम्युलेटर को तेज करना
- 22. सूचकांक एक योग स्तंभ
- 23. कौन सा mysql विधि तेज है?
- 24. क्या फ़ंक्शन को रेखांकित करना संभव है?
- 25. क्या हैशटेबल को सॉर्ट करना संभव है?
- 26. क्या रुबी से एक MySQL संग्रहीत प्रक्रिया को कॉल करना संभव है?
- 27. Mysql में शामिल होने और योग परिणाम
- 28. MySQL: हर दिन का योग
- 29. क्या एक क्लिकऑन परिनियोजन को स्वचालित करना संभव है?
- 30. क्या एक .NET MySQLCommand में MySQL उपयोगकर्ता परिभाषित चर का उपयोग करना संभव है?
यह संभव है हालांकि अन्य डेटाबेस; पूर्व। [ओरेकल] (http://en.wikipedia.org/wiki/Materialized_view), [एमएस एसक्यूएल] (http://technet.microsoft.com/library/Cc917715), –