क्वेरी है:
SELECT COUNT(q."TopicId") as TotalQuestions
FROM "Questions" q
JOIN "QuestionScores" qs
ON qs."QuestionId"=q."id"
WHERE qs."version" = (SELECT "version"
FROM "QuestionScores"
ORDER BY "version" DESC
LIMIT 1)
AND qs."StudentId"= 105
AND q."status"="active"
AND q."TopicId" = 125
AND q."PassageId" IS NULL
इस क्वेरी में लगभग 90 सेकंड लगते हैं।
अगर मैं बदलता हूँ TopicId
18 तक, फिर यह एक सेकंड में चलता है। मामला क्या हो सकता है?
उत्तर:
उत्तर № 1 के लिए 1मेरे दोस्त अगर मैं तुम होते तो मैं तुम्हारे कॉलम के लिए कुछ इंडेक्स बनाने पर विचार करता।
यहाँ सूचकांक के बारे में कुछ जानकारी दी गई है:
- सूचकांक कैसे बनाएं: https://www.w3schools.com/sql/sql_create_index.asp
- गुच्छेदार और गैर गुच्छेदार सूचकांक के बीच अंतर: https://docs.microsoft.com/en-us/sql/relational-databases/indexes/clustered-and-nonclustered-indexes-described
- इस मुद्दे पर इसके बारे में कुछ अच्छी व्याख्या: एसक्यूएल इंडेक्स और प्रदर्शन में सुधार