In einem C#-Programm importiere ich eine große Textdatei (300mb) in eine MySQL-Datenbank über die Funktion MySqlBulkLoader des MySql .Net Connectors.
Der Import dauert ziemlich lange und führt zu einer fast 100%igen Festplattenauslastung auf dem Windows 2003 Server, auf dem er ausgeführt wird. Um den Import zu beschleunigen, teilt das Programm nun die große Datei in kleinere Teile auf.
Wäre es möglich, die kleine Datei Chunk (8mb) in den Speicher (dh Array) zu lesen und dann übergeben Sie es an den MySQLBulkLoader als eine Datei?
Der Bulk Loader sucht nach einem Dateinamenpfad:
MySql.Data.MySqlClient.MySqlBulkLoader myBulk = new MySql.Data.MySqlClient.MySqlBulkLoader(connection);
myBulk.Timeout = 10 * 60; /
myBulk.TableName = "some_table";
myBulk.Local = true;
myBulk.LineTerminator = @"\n";
myBulk.FileName = aFile.FullName;
myBulk.FieldTerminator = "";