![]() |
MySql bulk insert, laddnings problem
Hej,
Jag håller på att göra en bulk insert med ca 50,000 poster. Kodsnutten för insert ser ut på detta vis. Kod:
string strSql = "INSERT INTO wc_list (id, name, company, orgNo, address, postalCode, city, phoneNo, carrier, status, projectId) VALUES(id, @A, @B, @C, @D, @E, @F, @G, @H, @I, @J)"; Just nu gör jag så att jag klickar på "INSERT-knappen" och sedan trycker jag direkt på ESC. Då kan jag surfa runt på sidan medans inserten håller på. hur kan jag åstadkomma samma effekt programmatiskt? håller på att utveckla i c# .NET tacksam för svar. |
Det beror på. En sätt är att lägga arbetet i en tråd och sedan hämta tillbaka status med SignlarR. Om det är Azure du utvecklar i så har du ju möjlighet att lägga dina arbeten i en kö som du sedan betar av med en worker-roll.
|
Kör alla inserts i en och samma query. Dvs INSERT INTO table (, , ,) VALUES (val1,val2), (val3, val4) etc.
Tror max ligger på 500 i en och samma query, detta går att ändra men annars kan du bara köra olika batchar om 500 åt gången. |
Som ovan säger, kör i batchar.
Istället för att köra 50.000 frågor mot databasen blir det bara 100 vilket inte bör ta många sekunder att köra. |
Såg nu att det rörde sig om 50k poster. Ändra max_allowed_packet och sätt in 10.000 om gången, bör gå kvickt :)
|
Jag hade använt mig av en insert med en select:
INSERT INTO users (username, password, firstname, lastname) SELECT username, salted_password, firstname, lastname FROM registered_users Gjort detta enkelt med över 600 tusen poster. Lycka till! |
tack för alla som försökt hjälpa, testade alla dessa ovan, med det tog alltför långt tid att göra en insert... ca 60 sek... :S
Lyckades dock lösa problemet med denna kod, för er som är intresserade. Jag skapar en tillfällig csv fil och därefter gör jag en batch-insert från filen tilkl databasen. Kod:
string strConnectionString = ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString; |
Alla tider är GMT +2. Klockan är nu 05:38. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson