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