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

एक .CSV फ़ाइल से MySQL डीबी में उत्पादों की तुलना/सम्मिलित/अपडेट करने का सबसे अच्छा तरीका क्या है

हमारी भी ऐसी ही स्थिति थी। स्क्रिप्ट को बेहतर बनाने के बहुत सारे प्रयासों के बाद, हमने तय किया कि हमें अपना आयात कार्य करने के लिए एक और दृष्टिकोण की आवश्यकता है, न कि ~10 घंटे।

हमने जो किया वह सभी PHP कोड को डंप कर दिया, और इसके बजाय mysqlimport . का उपयोग करें CSV फ़ाइल की सामग्री को सीधे तालिका में लोड करने के लिए। उस तालिका में अब वह सब कुछ है जो हमें चाहिए, लेकिन उस रूप में नहीं जो हमारे लिए उपयोगी हो (कोई संरचना नहीं, कुछ क्षेत्रों को कुछ प्रसंस्करण की आवश्यकता होती है, आदि)

हालाँकि, क्योंकि सब कुछ अब डेटाबेस में है, हम एक क्वेरी के साथ वह सब कुछ कर सकते हैं जो हम चाहते हैं। उदाहरण के लिए, सभी डेटा को हटाना जो अब आयात फ़ाइल में नहीं है, बस DELETE FROM structured_table AS st LEFT JOIN unstructured_table AS ut ON st.someField = ut.someField WHERE ut.someField IS NULL; , मौजूदा रिकॉर्ड को अपडेट करना केवल UPDATE structured_table AS st INNER JOIN unstructured_table AS ut ON st.someField = ut.someField SET st.anotherField = CONCAT(ut.aField, ' ', ut.yetAnotherField); पर है। ।

जाहिर है, एक जटिल आयात स्क्रिप्ट के लिए, आपके प्रश्न अधिक जटिल होंगे और आपको उनमें से अधिक की आवश्यकता होगी। अलग-अलग क्षेत्रों पर प्रसंस्करण करने के लिए आपको कुछ संग्रहीत प्रक्रियाओं को फेंकने की भी आवश्यकता हो सकती है। लेकिन अगर आप इस तरह का तरीका अपना सकते हैं तो आप एक ऐसी प्रक्रिया के साथ समाप्त हो जाएंगे जो बहुत सारे डेटा को संभाल सकती है और बहुत स्केलेबल है।



  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. MySQL में DATETIME से DATE और TIME को कैसे पार्ट करें?

  3. स्कूप के माध्यम से हाइव हडूप से डेटा को mysql में सहेजें?

  4. उनमें से एक को छोड़कर टाइमस्टैम्प द्वारा परिणाम क्रम को कैसे क्रमबद्ध करें?

  5. Php स्क्रिप्ट UTF8 को MYSQL में सम्मिलित करना