python测试mysql数据库性能(二)
一,普通写入数据库
二,批量写入数据库
三,普通写入数据库添加事务
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
python测试mysql数据库性能(二)的更多相关文章
- python测试mysql写入性能完整实例
这篇文章主要介绍了python测试mysql写入性能完整实例,具有一定借鉴价值,需要的朋友可以参考下 本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: ...
- Python操作MySQL数据库(二)
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装: pip install pymysql 1.执行SQL语句 #!/usr/bin/env pytho ...
- 使用Python对MySQL数据库插入二十万条数据
1.当我们测试的时候需要大量的数据的时候,往往需要我们自己造数据,一条一条的加是不现实的,这时候就需要使用脚本来批量生成数据了. import pymysql import random import ...
- python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库
前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 “test-mysql”. Python 操作 MySQL 我们使用 ...
- Python学习(二十五)—— Python连接MySql数据库
转载自http://www.cnblogs.com/liwenzhou/p/8032238.html 一.Python3连接MySQL PyMySQL 是在 Python3.x 版本中用于连接 MyS ...
- Python操作Mysql数据库时SQL语句的格式问题
一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...
- python使用mysql数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- python专题-Mysql数据库(python2._+ Mysqldb)
Python使用MySQL数据库 MySQLdb驱动从2014年1月停止了维护. Python2 MySQLdb 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安 ...
- Python连接MySQL数据库的多种方式
上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器 ...
随机推荐
- H3C STA>PC的数据转发
- HTTP/2和Python的支持现状-2019-10
背景: 大概2019年9月份,天猫全面升级了HTTP/2的支持,并且加强了HTTP/1的访问限制,也可能很早前就这么做了, 但之前一直没限制HTTP/1的访问.之所以发现这个问题,是因为写的爬虫突然失 ...
- rest framework 之渲染器
根据 用户请求URL 或 用户可接受的类型,筛选出合适的 渲染组件. 用户请求头: Accept:text/html,application/xhtml+xml,application/xml;q=0 ...
- 【Spring】Spring注解之@EnableConfigurationProperties
一.@EnableConfigurationProperties注解的作用 使能够对@ConfigurationProperties注解的bean的支持. 简单理解就是:可以在我们的配置类上不加@ ...
- 【Git】Git如何合并某一次commit的内容到指定分支
一.我是在什么场景下会用到该Git操作 当某同事,将开发分支dev2合并到开发分支dev1时(两个不同的功能,不能合并),其他同事不知情的情况下,继续在dev1上开发并提交了代码. 后面发现了该合并, ...
- linux 使用ssh-keygen生成ssh公钥和私钥
linux一般为在自己的家目录下建立 .ssh 文件夹 中生成密钥 /home/username/.ssh 生成的命令如下: ssh-keygen -t rsa -C "yourname@y ...
- jmap错误:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
原文:https://www.jianshu.com/p/0e5d8db8ed5e 错误场景 今天使用jmap -heap命令查看堆的详细信息报错. [root@instance-2gak1pfv d ...
- Vue之Action
(1)同步与异步 在 mutation 中混合异步调用会导致你的程序很难调试. 例如,当你调用了两个包含异步回调的 mutation 来改变状态,你怎么知道什么时候回调和哪个先回调呢? 这就是为什么我 ...
- 利用requests库访问360主页20次
一.安装 1.cmd进入命令行界面 2.直接输入 D:切换至D盘(python所在路径), 然后cd python下的scripts所在路径,切换至pip所在位置 3.pip install req ...
- Spring的三大核心思想:IOC(控制反转),DI(依赖注入),AOP(面向切面编程)
Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧) 1.IoC是什么? IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多 ...