मैं MySql डेटाबेस में 20 मिलियन रिकॉर्ड सम्मिलित करने के लिए:एक डेटाबेस तालिका में नीचे की तरह के रूप में तेजी से संभव के रूप में
create table temperature
(id int unsigned not null auto_increment primary key,
temperature double
);
और मेरे कार्यक्रम में मैं तालिका में डालने के लिए लगभग 20 लाख तापमान मिला है। मैं .NET पर्यावरण में काम करता हूं, MySQL से कनेक्टर/नेट कनेक्टिंग का उपयोग करता हूं। कोड नीचे जैसा था:
List<double> temps = new List<double>();
...
string connStr = "server=localhost;user=name;database=test;port=3306;password=*****;";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
conn.Open();
//temps.Count is about 20 million
for (int i = 0; i < temps.Count; i++)
{
string sql1 = "INSERT INTO temperature VALUES (null, "+temps[i]+")";
MySqlCommand cmd1 = new MySqlCommand(sql1, conn);
cmd1.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
conn.Close();
मैं जितनी जल्दी हो सके इतने सारे लाइन डेटा कैसे डाल सकता हूं? (यह केवल मेरे कंप्यूटर में 2000 के रिकॉर्ड हर मिनट सम्मिलित कर सकते हैं।)
मैं थोड़ा उत्सुक हूँ। आप डीबी में 20 लाख तापमान क्यों डालेंगे? –
क्या आपको autoincrement की आवश्यकता है? मेरे पास एक समान स्थिति है (एसक्यूएल सर्वर पर) और मैं लोडर पर वृद्धि कुंजी क्लाइंट पक्ष का प्रबंधन करता हूं। मैं अपने वर्तमान हार्डवेयर पर प्रति सेकंड 75.000 पंक्तियों को मिलाता हूं। कोई एसक्यूएल, हालांकि ... – TomTom
इसके अलावा आपका एसक्यूएल "बेकार" है;) क्या आप एक रन में एकाधिक सम्मिलन विवरण सबमिट नहीं कर सकते हैं? यह एक स्ट्रिंग है - क्या MySQL संभाल सकता है? प्रति राउंड ट्रिप 10 10 राउंड ट्रिप यात्रा है। थ्रेड उस (मूर थ्रेडेड लोड) में moer जोड़ते हैं। – TomTom