PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL क्रॉस प्रदर्शन के लिए अनुक्रमण में शामिल हों

आपकी मुख्य समस्या है OR — जब तक आपके पास OR . है, तब तक आपको अच्छा प्रदर्शन नहीं मिल सकता है अपने WHERE . में इस तरह खंड।

क्वेरी को इस प्रकार फिर से लिखें:

SELECT * FROM main_transaction t 
   JOIN main_profile p ON t.profile_id = p.id
   JOIN main_customer c ON p.user_id = c.id 
WHERE upper(t.request_no) LIKE upper(concat('%','0-90-6 12 ','%'))
UNION
SELECT * FROM main_transaction t 
   JOIN main_profile p ON t.profile_id = p.id
   JOIN main_customer c ON p.user_id = c.id 
WHERE upper(c.phone) LIKE upper(concat('%','0-90-6 12','%'));

फिर सुनिश्चित करें कि आपके पास निम्नलिखित इंडेक्स हैं (id . पर इंडेक्स के अलावा) रों):

CREATE INDEX ON main_transaction (profile_id);
CREATE INDEX ON main_transaction USING gin (upper(request_no) gin_trgm_ops);
CREATE INDEX ON main_profile (user_id);
CREATE INDEX ON main_customer USING gin (upper(phone) gin_trgm_ops);

इससे फर्क पड़ना चाहिए।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एंड्रॉइड में जेडीबीसी के माध्यम से पोस्टग्रेएसक्यूएल सर्वर से कैसे कनेक्ट करें?

  2. पोस्टग्रेज:जावा से कस्टम प्रकारों को पोस्टग्रेज फंक्शन में पास करना

  3. पर्ल - डीबीआई और .pgpass

  4. [टेम्पलेट], [एन्कोडिंग], [स्वामी] और एक .sql फ़ाइल के साथ बैच फ़ाइल का उपयोग करके पोस्टग्रेज़ डेटाबेस बनाएँ

  5. PostgreSQL के लिए जावा तैयार बयान