आपने यह नहीं बताया कि यह परीक्षण प्रणाली थी या उत्पादन; मैं मान रहा हूँ कि यह उत्पादन है।
यह संभावना है कि आपको तालिका एक ऐसे आकार में मिल गई है जहां इसकी अनुक्रमणिका (या पूरी लॉट) अब स्मृति में फिट नहीं होती है।
इसका मतलब यह है कि InnoDB को इन्सर्ट के दौरान (आपकी नई पंक्तियों के सूचकांक मूल्यों के वितरण के आधार पर) पृष्ठों को पढ़ना चाहिए। पन्ने पढ़ना (यादृच्छिक पढ़ना) वास्तव में धीमा है और यदि संभव हो तो इससे बचना चाहिए।
विभाजन सबसे स्पष्ट समाधान की तरह लगता है, लेकिन MySQL का विभाजन आपके उपयोग-मामले में फिट नहीं हो सकता है।
आपको निश्चित रूप से सभी संभावित विकल्पों पर विचार करना चाहिए - यह कैसे व्यवहार करता है यह देखने के लिए अपनी प्रयोगशाला में एक परीक्षण सर्वर पर तालिका प्राप्त करें।
आपकी प्राथमिक कुंजी मुझे इस तरह दिखती है जैसे कि इसकी आवश्यकता नहीं है (आपके पास एक और अद्वितीय अनुक्रमणिका है), इसलिए इसे समाप्त करना एक विकल्प है।
इनोडब प्लगइन और कंप्रेशन पर भी विचार करें, इससे आपका innodb_buffer_pool आगे बढ़ जाएगा।
आपको वास्तव में यह तय करने के लिए अपने उपयोग-मामलों का विश्लेषण करने की आवश्यकता है कि क्या आपको वास्तव में यह सारा डेटा रखने की आवश्यकता है, और क्या विभाजन एक समझदार समाधान है।
इस एप्लिकेशन में कोई भी बदलाव करने से आपके उपयोगकर्ताओं के लिए नई प्रदर्शन समस्याएं आने की संभावना है, इसलिए आप यहां वास्तव में सावधान रहना चाहते हैं। यदि आप सम्मिलित प्रदर्शन में सुधार करने का कोई तरीका ढूंढते हैं, तो यह संभव है कि यह खोज प्रदर्शन या अन्य कार्यों के प्रदर्शन को कम कर देगा। इस तरह के बदलाव को जारी करने से पहले आपको प्रोडक्शन-ग्रेड हार्डवेयर पर पूरी तरह से प्रदर्शन परीक्षण करने की आवश्यकता होगी।