Einfügen von 1000000 Zeilen in die sqlite3-Datenbank
Ich möchte 10.00.000 Zeilen in die Datenbank einfügen, aber das dauert zu lange wie beim Einfügen.
z.B. Jetzt versuche ich es mit 2055 Zeilen und es dauert 3 Minuten, um diese Daten in die Datenbank hochzuladen. Und diese Zeit ist zu viel für 2055 Einträge.
Das Folgende ist meine Methode zum Einfügen der Daten in die Datenbank:
public void insert_database(Context context,String field1,String field2,String field3,String field4,String field5,String field6 ,String field7,String field8,String field9,String field10)
{
try
{
//RayAllen_Database.beginTransaction();
RayAllen_Database.execSQL(" insert or replace into "+ TableName_csv+" values( '"+field1+"' ,'"+field2+"','"+field3+"','"+field4+"','"+field5+"','"+field6+"','"+field7+"','"+field8+"','"+field9+"','"+field10+"');");
}
catch(Exception e)
{
//Log.i("Database Exception", "Exception");
e.printStackTrace();
}
}
und in der anderen Klasse namens: Parsing Data: hier analysiere ich die CSV-Datei und beim Analysieren:
Versuchen {
CSVReader reader=new CSVReader(new FileReader(filename));
String [] nextLine;
//create database
obj.create_database(context);
obj.OpenDatabase(context);
//reader.readNext();
while ((nextLine=reader.readNext())!=null)
{
//here I am calling the insert_database function
}
}
Es wird Zeile für Zeile analysiert und die insert-Methode aufgerufen, um den Eintrag in die Datenbank einzufügen.
Aber es dauert zu lange. Wie kann ich die Leistung verbessern?