数据库操作优化

2018-01-18  本文已影响10人  其字德安
耗时操作实验
    
    // 开启事务
    CGFloat beginTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    [db beginTransaction];
    
    for (NSInteger i = 0; i < 1000; i++) {
        
       FMResultSet *result = [db executeQuery:@"SELECT * FROM t_PetInfo;"];
    }

    [db commit];
    CGFloat endTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    NSLog(@"time2 - %f", endTime2 - beginTime2);
    
    [db close];
    

// 不开启事务
    CGFloat beginTime2 = [NSDate timeIntervalSinceReferenceDate];
      for (NSInteger i = 0; i < 1000; i++) {
        
       FMResultSet *result = [db executeQuery:@"SELECT * FROM t_PetInfo;"];
    }

   CGFloat endTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    NSLog(@"time2 - %f", endTime2 - beginTime2);
    
    [db close];
// 开启事务
    // 1.0 创建数据库
    NSString *dbPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"tmps.db"];
    
    FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
    
    [db open];

    [db beginTransaction];
    
    CGFloat beginTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    for (NSInteger i = 0; i < 1000; i++) {
        
        [db executeUpdate:@"UPDATE t_PetInfo SET name = ?, age = ?;", @"funny", @(i)];
    }

    [db commit];
    CGFloat endTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    NSLog(@"time2 - %f", endTime2 - beginTime2); // 5.725228
    
    [db close];
   // 不开启事务
    
    NSString *dbPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"tmps.db"];
    
    FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
    
    [db open];
    
    CGFloat beginTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    for (NSInteger i = 0; i < 1000; i++) {
        
        [db executeUpdate:@"UPDATE t_PetInfo SET name = ?, age = ?;", @"funny", @(i)];
    }
    
    CGFloat endTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    NSLog(@"time2 - %f", endTime2 - beginTime2); // 15.122401
     
    [db close];
    // 开启事务
    NSString *dbPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"tmps.db"];
    
    FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
    
    [db open];

    [db beginTransaction];
    
    CGFloat beginTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    for (NSInteger i = 0; i < 1000; i++) {
        
        [db executeUpdate:@"DELETE FROM t_PetInfo WHERE petNo = ?", @(i)];
    }
    
    [db commit];
    CGFloat endTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    NSLog(@"time2 - %f", endTime2 - beginTime2);
    
    [db close]; // 0.608012
    NSString *dbPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"tmps.db"];
    
    FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
    
    [db open];

   // [db beginTransaction];
    
    CGFloat beginTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    for (NSInteger i = 0; i < 1000; i++) {
        
        [db executeUpdate:@"DELETE FROM t_PetInfo WHERE petNo = ?", @(i)];
    }
    
   //[db commit];
    CGFloat endTime2 = [NSDate timeIntervalSinceReferenceDate];
    
    NSLog(@"time2 - %f", endTime2 - beginTime2);
    
    [db close]; // 4.768991
上一篇 下一篇

猜你喜欢

热点阅读