pymysql中不同插入操作效能比較

2022-09-08 22:51:29 字數 1741 閱讀 1119

我們測試下3種插入操作方式的效能情況(以10000次為例):

#

coding:utf-8

import

time

import

pymysql

from settings import *con = pymysql.connect(host=mysql_host, username=mysql_user, password=mysql_password, port=mysql_port,

database=mysql_database)

cur =con.cursor()

sql = '

insert into test_table(test_field) values(%s);'#

1、執行和提交10000次

deftest1():

t1 =time.time()

for i in range(10000):

try:

cur.execute(sql,[i])

con.commit()

except

exception as e:

print

(e) con.rollback()

t2 =time.time()

print('

使用10000次execute和commit耗時:%.2f秒

'%(t2-t1))

#2、執行10000次,提交1次

deftest2():

t1 =time.time()

try:

for i in range(10000):

cur.execute(sql,[i])

con.commit()

except

exception as e:

print

(e) con.rollback()

t2 =time.time()

print('

使用execute執行10000次,commit1次耗時:%.2f秒

'%(t2-t1))

#3、執行executemany1次,提交1次

deftest3():

t1 =time.time()

args_list =

for i in range(10000):

try:

cur.executemany(sql,args_list)

con.commit()

except

exception as e:

print

(e) con.rollback()

t2 =time.time()

print('

使用executemany執行1次,commit1次耗時:%.2f秒

'%(t2-t1))

defmain():

test1()

test2()

test3()

if__name__ == '

__main__':

main()

使用10000次execute和commit耗時:12.96秒

使用execute執行10000次,commit1次耗時:0.94秒

使用executemany執行1次,commit1次耗時:0.05秒

很明顯,1次緩衝多條命令,效率會高於分次提交,同時executemany方法會進一步提公升效率

C 互操作性

互操作性使您能夠保留和利用在現有非託管 中的投入。託管 執行在公共語言執行庫 clr 的控制之下的 非託管 執行在 clr 之外的 稱為 非託管 com com c 元件 activex 元件 和 win32 api 都是非託管 的示例。為什麼要使用互操作性呢?net 是建立在作業系統的之上的乙個開...

oracle proc 插入操作效能優化實踐

student 表中 10萬條資料。從 student 表中取出所有資料,插入到 student his 表中 1.批量插入 效果明顯 2.批量查詢 效果不明顯 3.批量提交 效果不明顯 4.預編譯 sql 語句 效果不明顯 10萬條資料,普通方法 27 秒,優化後 8 秒 create table...

物聯網互操作性的意義

迄今為止的討論都是在雙應用場景中的框圖架構中。這種布置的物理實施,涉及來自不同 商的硬體和軟體。如果解決方案負責人希望更改閘道器,使用來自不同 商的閘道器,那麼會評估閘道器到中介軟體 和閘道器到感測器 的互操作性,以最大限度地減少自定義系統整合工作。這種互操作性類似於計算機連線到網際網路,或能夠國際...