मेरे पास एक अमेज़ॅन (AWS) औरोरा डीबी क्लस्टर है, और हर दिन, इसकी [Billed] Volume Bytes Used
वृद्धि हो रही है।
मैंने INFORMATION_SCHEMA.TABLES
तालिका का उपयोग करके अपनी सभी तालिकाओं (उस क्लस्टर में अपने सभी डेटाबेस में) का आकार जाँच लिया है :
SELECT ROUND(SUM(data_length)/1024/1024/1024) AS data_in_gb, ROUND(SUM(index_length)/1024/1024/1024) AS index_in_gb, ROUND(SUM(data_free)/1024/1024/1024) AS free_in_gb FROM INFORMATION_SCHEMA.TABLES;
+------------+-------------+------------+
| data_in_gb | index_in_gb | free_in_gb |
+------------+-------------+------------+
| 30 | 4 | 19 |
+------------+-------------+------------+
कुल: 53GB
तो मुझे इस समय लगभग 75GB बिल क्यों दिया जा रहा है?
मैं समझता हूं कि प्रोविजनल स्पेस को कभी मुक्त नहीं किया जा सकता है, उसी तरह जैसे कि नियमित MySQL सर्वर पर आईबीडीटा फाइल्स कभी भी सिकुड़ नहीं सकती हैं; आई 'म ओके विद दैट। यह प्रलेखित है, और स्वीकार्य है।
मेरी समस्या यह है कि हर दिन, मेरे द्वारा बिल की गई जगह बढ़ जाती है। और मुझे यकीन है कि मैं अस्थायी रूप से 75GB स्थान का उपयोग नहीं कर रहा हूं। अगर मैं ऐसा कुछ करता, तो मैं समझ जाता। यह ऐसा है जैसे मेरी टेबल से पंक्तियों को हटाकर, या ड्रापिंग टेबल, या यहां तक कि डेटाबेस को छोड़ने के द्वारा स्टोरेज स्पेस मैं मुक्त हो रहा हूं, कभी भी पुन: उपयोग नहीं किया जाता है।
मैंने कई बार AWS (प्रीमियम) समर्थन से संपर्क किया है, और ऐसा क्यों है, इस बारे में अच्छी व्याख्या करने में सक्षम नहीं था।
मुझे उन OPTIMIZE TABLE
तालिकाओं पर चलने के सुझाव मिले हैं, जिन पर free_space
( INFORMATION_SCHEMA.TABLES
तालिका के अनुसार ) बहुत कुछ है , या इनोबीडी इतिहास की लंबाई की जांच करने के लिए, यह सुनिश्चित करने के लिए कि हटाए गए डेटा को अभी भी रोलबैक खंड में नहीं रखा गया है (संदर्भ: MVCC ) , और यह सुनिश्चित करने के लिए कि रोलबैक सेगमेंट को खाली कर दिया गया है, उदाहरण को पुनः आरंभ करें।
उन लोगों में से किसी ने मदद नहीं की।