데이터베이스에 10,00,000 개의 행을 삽입하려고하지만 삽입하는 데 시간이 너무 오래 걸립니다.sqlite3 데이터베이스에 1000000 행 삽입
이제 나는 2055 개의 행을 가지고이 데이터를 시도하고 있는데,이 데이터를 데이터베이스에 업로드하는 데 3 분이 걸린다. 그리고 이번에는 2055 개의 항목이 너무 많다.
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();
}
}
와라는 다른 클래스 : 구문 분석 데이터 :
다음
는 데이터베이스에 데이터를 삽입하는 나의 방법이다 여기에 내가 CSV 파일을 구문 분석하고하는 동안 구문 분석 :시도 그래서 여기에 그것은 하나의 행을 구문 분석하고 데이터베이스에 항목을 삽입 할 삽입 메소드를 호출한다 {
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
}
}
..
하지만 시간이 너무 많이 걸립니다.이 성능을 어떻게 향상시킬 수 있습니까 ??
문장을 한 번 준비하고 세션의 모든 삽입에 사용합니다. 이렇게하면 더 빨라질 것입니다. http://developer.android.com/reference/java/sql/PreparedStatement.html –
CSV를 구문 분석하고 기기에서 DB를 채우는 이유가 있습니까? 오프라인으로 할 수 있습니까? – Rajesh
하지만 데이터베이스에 저장하기 위해 행별로 읽을 필요가 있으므로 CSV 파일을 가져오고 있습니다. – Kanika