Lea el archivo grande en la tabla sqlite en object-C en iPhone

Tengo un archivo de 2 MB, no demasiado grande, que me gustaría colocar en una base de datos sqlite para poder buscarlo. Hay alrededor de 30K entradas que están en formato CSV, con seis campos por línea. Mi entendimiento es que sqlite en el iPhone puede manejar una base de datos de este tamaño.

He tomado algunos enfoques pero todos han sido lentos> 30 s. He intentado:

1) Uso del código C para leer el archivo y analizar los campos en matrices.

2) Usando el siguiente código de Objective-C para analizar el archivo y colocarlo directamente en la base de datos sqlite:

NSString *file_text = [NSString stringWithContentsOfFile: filePath usedEncoding: NULL error: NULL];

NSArray  *lineArray = [file_text componentsSeparatedByString:@"\n"];

for(int k = 0; k < [lineArray count]; k++){
    NSArray *parts = [[lineArray objectAtIndex:k] componentsSeparatedByString: @","];

    NSString *field0       = [parts objectAtIndex:0];
    NSString *field2       = [parts objectAtIndex:2];
    NSString *field3       = [parts objectAtIndex:3];

NSString *loadSQLi = [[NSString alloc] initWithFormat: @"INSERT INTO TABLE (TABLE, FIELD0, FIELD2, FIELD3) VALUES ('%@', '%@', '%@');",field0, field2, field3];


    if (sqlite3_exec (db_table, [loadSQLi  UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
        sqlite3_close(db_table);
        NSAssert1(0, @"Error loading table: %s", errorMsg);
    }

¿Me estoy perdiendo de algo? ¿Alguien sabe de una manera rápida de obtener el archivo en una base de datos?

¿O es posible traducir el archivo a un formato sqlite que se pueda leer directamente en sqlite?

¿O debería convertir el archivo en una lista y cargarlo en un Diccionario? Desafortunadamente, necesito buscar en dos de los campos, ¿y creo que un diccionario solo puede tener una clave?

Louis, gracias por tu respuesta.

Debería haber mencionado que solo quiero escribir los datos en la base de datos una vez al principio de la aplicación, y luego, solo necesito hacer lecturas de la base de datos, sin escrituras.

¿Puede decirme cómo generar la base de datos sqlite3 directamente desde el archivo CSV como parte del proceso de compilación?

Respuestas a la pregunta(3)

Su respuesta a la pregunta