当autocommit为开启状态时,即使没有手动start transaction开启事务,mysql默认也会将用户的操作当做事务即时提交(自动帮我们 db.commit())
autocommit开启时,mysql的插入效率会提高
1.autocmmit=False
import pymysql
import time
def mysql_autpcommit():
strat_time = time.time()
db = pymysql.connect(host='localhost', port=3306, database='cfda', user='root', password='root', charset='utf8',
autocommit=False)
cursor = db.cursor()
title = '14省份大到暴雨来袭! 双台风或相互影响'
for i in range(1000):
cursor.execute('insert into async_test_async(title) values("{}")'.format(title))
db.commit()
print("\r I:{}".format(i), end='')
print('耗时:{}'.format(time.time() - strat_time))
if __name__ == "__main__":
mysql_autpcommit()
# 结果: 耗时:3.388371467590332 autocommit=False
2.autocmmit=Ture
import pymysql
import time
def mysql_autpcommit():
strat_time = time.time()
db = pymysql.connect(host='localhost', port=3306, database='cfda', user='root', password='root', charset='utf8',
autocommit=True)
cursor = db.cursor()
title = '14省份大到暴雨来袭! 双台风或相互影响'
for i in range(1000):
cursor.execute('insert into async_test_async(title) values("{}")'.format(title))
# db.commit()
print("\r I:{}".format(i), end='')
print('耗时:{}'.format(time.time() - strat_time))
if __name__ == "__main__":
mysql_autpcommit()
# 结果: 耗时:2.4238381385803223 autocommit=True