बहुत नया करने के लिए postgres और लगता है, यहाँ एक मुद्दा है और मैं नहीं हूँ यकीन है कि जो दिशा में जाने के लिए.
मैं एक क्वेरी पैदा कर रहा है कि कुछ प्रदर्शन के मुद्दों और मैं बाहर काम नहीं कर सकता कैसे यह अनुकूलन करने के लिए.
क्वेरी वास्तव में काफी आसान है:
SELECT transactions.* FROM transactions
LEFT OUTER JOIN companies ON "companies"."id" = "transactions"."company_id"
WHERE companies.code ILIKE '%777%'
ORDER BY transactions.id desc LIMIT 10
मैं खोजने के लिए चाहते हैं कि सभी लेनदेन के लिए कर रहे हैं एक कंपनी है कि 777 नाम में. वहाँ के आसपास हैं 20million लेनदेन डेटाबेस में और चारों ओर 200 कंपनियों.
क्वेरी वर्तमान में गुना से बाहर है, भले ही हम एक सीमा होती है 10. मैं इस पर विश्वास है क्योंकि ILIKE नहीं है का उपयोग कर एक सूचकांक है, तो यह बुरी तरह से धीमी है.
यह एक उदाहरण जहां आप कर सकते हैं जोड़ने के लिए चाहते हैं, जहां फिल्टर करने के लिए शामिल होने के बजाय? मैं यह परीक्षण किया है और यह काम करता है बिजली-त्वरित अगर एक रिकॉर्ड पाया जाता है. यदि कोई रिकॉर्ड नहीं पाया जाता है, इसे फिर से है ।
वहाँ एक प्रकार के सूचकांक में हम पर लग जाना चाहिए होता है, जो गति में सुधार यहाँ?