測試jdbc幾種操作mysql資料方法的速度

2021-06-13 06:20:59 字數 1807 閱讀 9631

寫了幾段測試程式,測試一下mysql的效能.簡單說下環境,tomcat下使用連線池連線的mysql,測試方式以下3種:

1:每次從連線池獲得乙個連線執行乙個固定的insert語句2000次:

insert into test (testcol,testcol1,testcol2,testcol3,testcol4,testcol5,testcol6,testcol7)

values('aaaaaaa','aaaaaaa','aaaaaaa','aaaaaaa','aaaaaaa','aaaaaaa','aaaaaaa','aaaaaaa')

每次執行後連線關閉.

2:每次從連線池獲得乙個連線執行乙個預編譯的insert語句2000次:

insert into test (testcol,testcol1,testcol2,testcol3,testcol4,testcol5,testcol6,testcol7)

values(?,?,?,?,?,?,?,?)

每次執行後連線關閉.

3:從連線池中取乙個連線,執行乙個預編譯的insert語句2000次:

insert into test (testcol,testcol1,testcol2,testcol3,testcol4,testcol5,testcol6,testcol7)

values(?,?,?,?,?,?,?,?)

2000條語句執行完畢,關閉該連線

4:從連線池中獲得乙個連線,設定預編譯語句:

insert into test (testcol,testcol1,testcol2,testcol3,testcol4,testcol5,testcol6,testcol7)

values(?,?,?,?,?,?,?,?)

2000次迴圈,每次設定完引數後執行addbatch.最後執行excutebatch();

測試結果如下: 1

2345

6789

10平均值

方式1:

4439

6777

4727

6468

6258

9719

10270

4525

7763

8736

6968.2

方式2:

5448

5214

4794

4905

6212

6924

6131

7287

6879

7128

6092.2

方式3:

4906

6296

5835

4592

4686

7431

4664

5777

8029

4572

5678.8

方式4:

4830

5895

5685

5126

5586

4932

5250

5862

5976

5589

5473.1

可以看出來,直接傳遞sql語句的方式最慢達到了6968毫秒.

第3\4種方式差別不太多.主要是我的程式和資料庫在同一臺機器上.excuteupdate()每執行一次資料就會在網路上往返傳輸一次資料,執行2000次就會往返2000次.但使用了excutebatch(),資料在網路上只往返了1次.所以當多次執行同乙個sql時最適合使用excutebatch()方式.例如,伺服器向資料庫中寫日誌,可以採用積累一定的日誌資訊後,定時採用excutebatch()傳送到伺服器

操作JDBC的方式有幾種

1.jdbctemplate spring框架自帶 使用方式 1.通過在xml檔案中引用 第乙個datasource指jdbctemplate的屬性,第二個是引用的c3p0的配置 在需要的地方使用 或注入 即可。使用的方式有兩種一種是通過注入的方式,另外一種是獲取bean物件 bean物件的方式 注...

jdbc操作Mysql相關事項

編碼問題徹底解決 第一建立表的時候能建立成功,但是插入中文資料不能插入成功,那麼在字段型別後面新增character set utf8 collate utf8 general ci create database mengmengda create table user id int userna...

JDBC操作MySQL進行批處理

1 批處理 概念 一次向資料庫傳送多條sql語句,降低與資料庫的互動次數,提公升資料庫層執行效率。2 建表 create database day16 create table user id int primary key,name varchar 20 3 測試 我已經把資料庫連線 封裝好了,在...