मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन मैं एक समान उत्तर की तलाश में था, जब यह पता लगाने की कोशिश की जा रही थी कि मेरे अपडेट में 250 मीटर पंक्तियों की क्वेरी में कितना समय लगेगा।
यदि आप दौड़ते हैं:
SHOW ENGINE INNODB STATUS \G
फिर लेन-देन के तहत विचाराधीन लेन-देन का पता लगाएं, इस खंड की जांच करें:
---TRANSACTION 34282360, ACTIVE 71195 sec starting index read
mysql tables in use 2, locked 2
1985355 lock struct(s), heap size 203333840, 255691088 row lock(s), undo log entries 21355084
महत्वपूर्ण बिट "लॉग प्रविष्टियों को पूर्ववत करें" है। प्रत्येक अद्यतन पंक्ति के लिए, मेरे मामले में यह एक पूर्ववत लॉग प्रविष्टि जोड़ने के लिए लग रहा था (कुछ सेकंड के बाद इसे फिर से चलाने की कोशिश कर रहा है और देखें कि कितने जोड़े गए हैं)।
यदि आप स्थिति रिपोर्ट के अंत तक जाते हैं, तो आप इसे देखेंगे:
Number of rows inserted 606188224, updated 251615579, deleted 1667, read 54873415652
0.00 inserts/s, 1595.44 updates/s, 0.00 deletes/s, 3190.88 reads/s
यहां हम देख सकते हैं कि गति अद्यतन लागू किए जा रहे हैं 1595.44 पंक्तियाँ प्रति सेकंड (हालाँकि यदि आप एक साथ अन्य अद्यतन क्वेरी चला रहे हैं, तो यह गति आपके प्रश्नों के बीच अलग हो सकती है)।
तो इससे, मुझे पता है कि 21m को अपडेट किया गया है (250m-21m) 229m पंक्तियों को जाने के लिए छोड़ दिया गया है।
229,000,000 / 1600 =143,125 सेकंड जाने के लिए (143,125 / 60) / 60 =39.76 घंटे जाने के लिए
तो ऐसा प्रतीत होता है कि मैं अपने अंगूठे को कुछ और दिनों के लिए घुमा सकता हूं। जब तक यह उत्तर गलत न हो, उस स्थिति में मैं इसे कुछ समय पहले अपडेट कर दूंगा!