一,普通写入数据库

二,批量写入数据库

三,普通写入数据库添加事务

config = {
'host': 'localhost',
'port': 3306,
'database': 'test',
'user': 'root',
'password': '1234qwer',
'charset': 'utf8'
} conn = pymysql.connect(**config)
cur = conn.cursor() def timer(fn):
def _wrapper(count):
start = time.time()
fn(count)
seconds = time.time() - start
print(u"{func}函数每 {count} 条数数据写入耗时 {sec}秒".format(func=fn, count=count, sec=seconds))
return _wrapper # 普通写入
@timer
def ordinary_insert(count):
sql = "insert into students1 (name, age, sex,id,cellphone,address,score) values ('tom666', '66', 'boy', '10066', '13900000066', 'shanghai', '66')"
for i in range(count):
cur.execute(sql) # 批量处理
@timer
def many_insert(count):
sql = "insert into students1 (name, age, sex,id,cellphone,address,score)values(%s,%s,%s,%s,%s,%s,%s)" loop = count / 20
stus = (('tom666','','boy','','','shanghai',''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai',''),
('tom666', '', 'boy', '', '', 'shanghai', ''),('tom666','','boy','','','shanghai','')) for i in range(int(loop)):
cur.executemany(sql, stus) # 事务处理
@timer
def transaction_insert(count):
sql = "insert into students1 (name, age, sex,id,cellphone,address,score)values(%s,%s,%s,%s,%s,%s,%s)" stus = ('tom666', '', 'boy', '', '', 'shanghai', '') if count > 0:
try:
for i in range(count):
cur.execute(sql, stus)
except Exception as e:
conn.rollback() # 事务回滚
print('事务处理失败', e)
else:
conn.commit() # 事务提交
print('事务处理成功, 关闭连接', cur.rowcount)
cur.close()
conn.close()
else:
print("输入的count有问题,无法执行数据库操作!") def test_insert(count):
ordinary_insert(count)
many_insert(count)
transaction_insert(count) test_insert(20)

输出结果:

E:\python_projects\practises\venv\Scripts\python.exe E:/python_projects/practises/practise20191116/p20191208.py
<function ordinary_insert at 0x0000026994A7BC18>函数每20条数数据写入耗时0.003995656967163086秒
<function many_insert at 0x0000026994A7B8B8>函数每20条数数据写入耗时0.0009996891021728516秒
事务处理成功, 关闭连接 1
<function transaction_insert at 0x0000026994A7BA68>函数每20条数数据写入耗时0.007994651794433594秒 Process finished with exit code 0

最新文章

  1. NOIP2016纪录[那些我所追求的]
  2. &amp;#65279导致页面顶部空白一行解决方法 【】
  3. 关于MFC文本框输入内容的获取 与 设置文本框的内容
  4. Spring使用——切面编程AOP使用
  5. 创建 kylin Module/Cube
  6. java面向对象学习笔记
  7. Hadoop on Mac with IntelliJ IDEA - 6 解决KeyValueTextInputFormat读取时只有key值问题
  8. vi编辑器使用介绍
  9. http缓存(http caching)
  10. javascript之页面打印
  11. mysql 主主+主从笔记
  12. $nextTick 的作用
  13. ssh登陆慢的问题
  14. FreeMarker boolean Issue
  15. C# Dictionary序列化/反序列化
  16. ORA-12638: 身份证明检索失败 的解决办法
  17. Spring MVC 原理图
  18. 2018牛客网暑期ACM多校训练营(第三场) H - Shuffle Cards - [splay伸展树][区间移动][区间反转]
  19. 【vue】router-link 与 router-view
  20. SQLite 自定义函数,聚合,排序规则

热门文章

  1. MYSQL中的时间类型
  2. 量化金融策略开源框架:QUANTAXIS
  3. git 自定义log
  4. win10 LTSC系统 安装应用商店和纸牌合集,解决从应用商店安装Solitaire Collection纸牌打开空白的问题
  5. WingIDE Pro 7如何检查Python集成?
  6. c#时间与时间戳互转13位
  7. ThinkCMF_X1.6.0-X2.2.3框架任意内容包含漏洞的简单分析复现(附自动化验证脚本)
  8. 使用MPU6050陀螺仪自制Arduino数字量角器
  9. Codeforces 1187E - Tree Painting(树上所有节点的儿子数量和最大)
  10. 【Android Studio】Gradle