0

내 성능이 향상되거나 다음 시나리오에 대해 더 빠른 성능을 갖는 것은 어느 것입니까?효과적인 방법 : 다중 삽입을위한 하나의 트랜잭션 또는 다중 삽입을위한 다중 트랜잭션

시나리오 : 1000 문장 주위에 여러 삽입 문이 있습니다.

접근 : 1. 갖는 하나의 트랜잭션 [db.transaction] 모든 삽입 문

db.transaction(function(tx){ 
    data.forEach(function(dataItem) {  
     tx.executeSql("INSERT INTO test (id, name) VALUES (?,?)", [dataItem.id, dataItem.name]}); 
}, errorInsertingSectorTable, successInsertSector);} 

또는 각 삽입 문에 대해 2. 별도의 db.transaction에게

db.transaction(function(tx){ 
    data.forEach(function(dataItem) { 
     dbExecution.databaseVar.transaction(function(tx) { 
     tx.executeSql("INSERT INTO test (id, name) VALUES (?,?)", [dataItem.id, dataItem.name]}); 
});}, error, success);} 

을 가지고에 대한 어떤 접근 방식은 빠른 성능을 가지고 있거나 phonegap 앱과 최상의 접근 방식에 대한 오버 헤드가 적습니까? 명확히 도와주세요. SQLite는에 배치 삽입의

+0

배치 삽입을 실행할 수 있습니까? –

+0

몇 가지 예를 들려 줄 수 있습니까? 배치 삽입이라도 효과적입니다. 미안 sqllite [sincenewbie] – vinod

+0

내 배치 문에 대한 내 대답을 참조하십시오. 예, 가능합니다. –

답변

-1

예 : Is it possible to insert multiple rows at a time in an SQLite database?

많은 요청을 실행하는 것보다 트랜잭션에 배치 삽입 할 빠릅니다. 얼마나 많은 통신이 단일 배치 요청으로 줄어들 었는지 상상해보십시오. 행 수가 많으면자를 수 있습니다.

편집 : 제안이 충분하지 않았기 때문에 몇 가지 아이디어를 더 드리겠습니다.

  • 당신하여 함수를 호출 각 반복에서 쿼리 문자열
  • 에가 (?,?) 연관 배열
  • 에 값을 추가하려면 추가를 반복 할 때마다 모든 데이터
  • 을 반복 할 필요가 쿼리 문자열과 값 전달
+0

차가움. 감사 내 쿼리에 대한 모든 대답은? 누구든지 제발? – vinod

+0

더 많은 정보를 얻기 위해 내 대답을 편집했습니다. –