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

क्या किसी तालिका को डेटा से भरने से पहले, या डेटा के स्थान पर होने के बाद एक अनुक्रमणिका बनाना बेहतर है?

डेटा डालने के बाद इंडेक्स बनाना अधिक कुशल तरीका है (यह अक्सर बैच आयात से पहले इंडेक्स ड्रॉप करने और आयात के बाद इसे फिर से बनाने की सिफारिश करता है)।

सिंथेटिक उदाहरण (PostgreSQL 9.1, धीमी विकास मशीन, एक मिलियन पंक्तियाँ):

CREATE TABLE test1(id serial, x integer);
INSERT INTO test1(id, x) SELECT x.id, x.id*100 FROM generate_series(1,1000000) AS x(id);
-- Time: 7816.561 ms
CREATE INDEX test1_x ON test1 (x);
-- Time: 4183.614 ms

सम्मिलित करें और फिर अनुक्रमणिका बनाएं - लगभग 12 सेकंड

CREATE TABLE test2(id serial, x integer);
CREATE INDEX test2_x ON test2 (x);
-- Time: 2.315 ms
INSERT INTO test2(id, x) SELECT x.id, x.id*100 FROM generate_series(1,1000000) AS x(id);
-- Time: 25399.460 ms

इंडेक्स बनाएं और फिर डालें - लगभग 25.5 सेकंड (दो गुना से अधिक धीमा)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Homebrew के साथ icu4c संस्करण 63 स्थापित करें

  2. PostgreSQL में UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) कैसे करें?

  3. Psycopg2 अजगर पुस्तकालय के साथ SQL गतिशील क्वेरी का निर्माण करें और अच्छे रूपांतरण प्रकार के टूल का उपयोग करें

  4. वर्चर फ़ील्ड के प्रकार को पूर्णांक में बदलें:पूर्णांक टाइप करने के लिए स्वचालित रूप से कास्ट नहीं किया जा सकता

  5. Android के साथ ड्राइवर JDBC PostgreSQL