मैं मान रहा हूँ कि levenshtein_ratio
एक फ़ंक्शन है जिसे आपने लिखा है (या शायद कहीं और से शामिल किया गया है)। यदि ऐसा है, तो डेटाबेस सर्वर इंडेक्स का उपयोग करने के सामान्य अर्थों में इसे अनुकूलित करने में सक्षम नहीं होगा। तो इसका मतलब है कि इसे बस प्रत्येक रिकॉर्ड के लिए कॉल करने की आवश्यकता है जो अन्य जॉइन शर्तों के परिणामस्वरूप होता है। एक आंतरिक जुड़ाव के साथ, यह उन तालिका आकारों (अधिकतम 8000*250000 =2 बिलियन) के साथ एक बहुत बड़ी संख्या हो सकती है। आप इसके साथ कॉल करने की कुल संख्या की जांच कर सकते हैं:
SELECT
count(*)
FROM
library a,
classifications b
WHERE
a.`release_year` = b.`year`
AND a.`id` IS NULL
यह एक स्पष्टीकरण है कि यह धीमा क्यों है (वास्तव में इसे अनुकूलित करने के प्रश्न का उत्तर नहीं है)। इसे अनुकूलित करने के लिए, आपको उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन में कॉल की संख्या को कम करने के लिए शामिल होने की स्थिति में अतिरिक्त सीमित कारक जोड़ने की आवश्यकता हो सकती है।