한국어

네트워킹

온누리070 플레이스토어 다운로드
    acrobits softphone
     온누리 070 카카오 프러스 친구추가온누리 070 카카오 프러스 친구추가친추
     카카오톡 채팅 상담 카카오톡 채팅 상담카톡
    
     라인상담
     라인으로 공유

     페북공유

   ◎위챗 : speedseoul


  
     PAYPAL
     
     PRICE
     

pixel.gif

    before pay call 0088 from app


http://kyleslab.tistory.com/71



안드로이드에서 사용하는 SQLite 는 모바일에서 가볍게 사용하기에 너무 좋다.

 하지만 다수의 Insert 문을 반복할때의 수행속도는 입이 쩍벌어지게 느렸는데......

 원인을 파해쳐보니 SQLite 에서는 Transaction을 사용하고 안하고의 차이가 다량 Insert 시 엄청난 시간 차이를 보여주고 있었다.

 다음 사이트의 Insert Test 를 보면 이해가 되리라 -> http://www.sqlite.org/speed.html

 

1000 건의 record 를 Insert 했을시에

SQLite 는 13.061 초

MySQL 은 0.114 초가 걸린다

 

반면에 25000 건의 record 를 Transaction 을 이용하여 Insert 했을시에

SQLite 는 0.914 초

MySQL 은 2.184 초가 걸렸다..

 

record 의 수는 25배가 늘었지만 Transaction 처리를 함으로

MySQL 의 속도 향상 대비 SQLite 의 경우 오히려 처리 속도 차이는 어마어마 하다

 

건수로만 비교했을때 25배 늘어난 데이터 처리속도는, Transaction 비 처리시

SQLite 는 326.525초 (헉), MySQL 은 2.85초가 예상된다

 

326.525초 -> 0.914 초 어마어마하지 않은가..

 

물론 이 SQLite 를 Android 에서 구동하느냐 iPhone 에서 구동하느냐 PC 에서 구동하느냐에 따른 차이도 많이 있을것이다..

하지만 확실한건 반복된 Insert 구문 사용시에는 Transaction 을 반드시 걸어야 할것으로 보인다~

- Android 에서 테스트시 Select 구문이 포함된 반복문이어서 정확한 속도비교는 불가능했으나 소모시간 약  1/10 수준으로 빨라졌다

 

 

자. 그럼 이제 Android 에서 Insert 시 Transaction 사용 구문 예제를 알아보자.

늘상 사용하는 방식대로라면 아래와 같이 사용하게 될것이다.

 

db.insert(TABLE_NAME, null, VALUE);

 

이것을 이제는 다음과 같이 사용하면 된다. (물론 반복문에서 사용할때 큰 효과를 발휘한다)

 

db.beginTransaction();

db.insert(TABLE_NAME, null, VALUE);

db.setTransactionSuccessful();

db.endTransaction();

 

그런데 이렇게 쓰고나면 뭔가 좀 허전해보인다.. SQL Exception 이 발생할 경우를 대비해야 하는데, 아래와 같이 수정한다.

 

try{

db.beginTransaction();

db.insert(TABLE_NAME, null, VALUE);

db.setTransactionSuccessful();

} catch (SQLException e){

} finally {

db.endTransaction();

}

 

보통의 경우라면 insert 구문 부근에는 조건문이나 반복문이 있으리라~

조회 수 :
23390
등록일 :
2014.04.07
00:31:42 (*.251.139.148)
엮인글 :
http://webs.co.kr/index.php?document_srl=39650&act=trackback&key=12c
게시글 주소 :
http://webs.co.kr/index.php?document_srl=39650
List of Articles
번호 제목 글쓴이 날짜 조회 수
60 두테이블비교 한쪽에 없는 값 추출 mysql left right outer join 서브쿼리 값사용 admin 2019-07-10 192
59 원격 IP로 MySQL(MariaDB)에 접속 방법 해법 설정 순서 admin 2019-06-19 300
58 oracle download install 오라클 다운로드 설치 admin 2018-05-29 3359
57 숫자 날짜 문자열 문자 공간 JSON MySQL 자료형 총 정리 phpMyAdmin 자료형 admin 2018-03-26 4063
56 mysql procedure admin 2017-11-16 4752
55 Sqlite very detail easy tutorial I recommand this admin 2017-09-09 6119
54 mysql 로컬접속 풀고 특정 아이피 접속 허가 허락 가능 하게 설정 하는 방법 admin 2017-09-05 5658
53 linux command chmod 리눅스 명령어 가장 쉽게 이해하기 설명 사용자 구룹 타인 권한 admin 2017-09-05 5847
52 mariadb CREATE USER CREATE USER statement creates new MariaDB accounts. admin 2017-09-01 14797
51 MySQL 데이터 베이스 백업 및 복구 방법 admin 2017-09-01 5939
50 Allowing MySQL Root Login from All IP Addresses : admin 2017-08-17 5551
49 Installation of MySQL Database Server admin 2017-08-17 5510
48 mysql 쿼리 로그 남기기 (실시간) admin 2015-04-15 9490
47 SQL Delete records using subqueries admin 2015-04-03 8574
46 Mysql privilege table GRANT SELECT,INSERT,UPDATE,DELETE ON db.table admin 2015-04-02 8738
» 안드로이드 SQLite 속도 향상! insert Transaction admin 2014-04-07 23390
44 MySQL에 원격 접속 허용 여러가지 아이피 아이피대역으로 admin 2014-04-02 37726
43 10gR2_sles10_install file admin 2014-03-18 15496
42 this is final answer assets sqlite Databases trouble copy External DB, check eclips admin 2014-02-18 15768
41 Browse SQLite data on the Android emulator admin 2014-02-15 17982
40 SQLite Database Browser file admin 2014-02-14 16836
39 SQLite Databases using External DB admin 2014-02-14 19061
38 sqlite DB copy admin 2014-02-14 15754
37 Android SQLite Database with Multiple Tables admin 2014-02-13 13001
36 Android Simple Clean Good SQLite Database Tutorial 잘된 설명 admin 2014-02-13 13911
35 android sqlite 사용하기 admin 2014-02-10 30676
34 SQLite 개발가이드 데이터베이스의 성능 admin 2014-02-10 34113
33 android - 다수의 Insert 수행시 속도 향상을 위한 팁 sQlite admin 2014-02-10 26715
32 Oracle Linux 에 Oracle DB 설치하기 admin 2013-12-03 36999
31 PreparedStatement mysql java 깔끔한설명 admin 2013-10-26 39932
30 Connect Excel VBA to a MySQL database file admin 2013-09-05 18956
29 Configuring Oracle ASM disks in Oracle Enterprise Linux admin 2013-04-20 17658
28 OS에따른 Oracle 설치버전 admin 2013-04-08 18567
27 RHEL4 + 10g 설치 _silent mode admin 2013-04-08 26483
26 OLE5 + 11G 설치 _silent mode admin 2013-04-08 30079
25 WHERE 조건절 검색시 서브쿼리는 어떻게? admin 2013-04-01 17901
24 CDR 추출 저장 Inner Join 사용 Sql 문 admin 2013-02-05 19173
23 SUPER OCM 1.8club admin 2012-12-18 19121
22 MySQL Java tutorial admin 2012-09-30 27522
21 Oracle 10g Articles admin 2012-06-24 18894
20 기본 10g 설치의 리눅스 세팅에서 추가 해줘야하는 사항(윈도우) admin 2012-06-24 20641
19 SUSE Linux Enterprise Server 10 (Oracle 10g R2 (10.2.0.1)) file admin 2012-03-09 20634
18 Upgrade Oracle from 10.2.0.1 To 10.2.0.4 (Windows) admin 2012-03-06 43811
17 Upgrade Oracle 10g Release 2 from 10201 to 10204 admin 2012-03-05 45176
16 centos 6.2 oracle 10g 설치 admin 2012-03-05 49817
15 Oracle RHEL4+10G 10.2.0.1 설치 10.2.0.5 패치 admin 2012-03-03 34684
14 Oracle Backup & restore with RMAN 기본 admin 2012-02-12 20341
13 오라클 ACE가 해설하는 Oracle Backup & Recovery admin 2012-02-07 21054
12 Oracle Backup & Restore admin 2012-02-07 35326
11 http://www.hoons.kr/ admin 2011-12-19 19581