python批量插入mysql数据库(性能相关)以及反引号的使用
参考link:
https://blog.csdn.net/qq_35958094/article/details/78462800(插入相关)
https://www.cnblogs.com/hyace/p/4173831.html(效率相关)
最近自己参考上面的link写了一个批量插入数据库的小脚本,记录一下,附上代码:
#!/usr/bin/python
# -*- coding:utf-8 -*- import pymysql class InsertData():
def __init__(self, db_name):
# connect to database
self.db = pymysql.connect('127.0.0.1',
'root',
'123456',
db_name,
charset='utf8') self.cursor = self.db.cursor() # init fake data
self.coll_policy_id = 1 # int
self.name = 'cisco'
self.cli_command = 'show run'
self.cli_command_result = 'good'
self.desc = '15s'
self.policy_type = 6 # int
self.snmp_oid = '1.1.1.1'
self.history = 'ok'
self.value_type = 9 # int
self.ostype_id = 10 # int def insert_data(self, table_name):
# insert into database
for t in range(0, 20):
sql = "INSERT INTO " + table_name + " (coll_policy_id, `name`, cli_command, cli_command_result, `desc`, policy_type, snmp_oid, history, value_type, ostype_id) VALUES"
# % (coll_policy_id, name, cli_command, cli_command_result, desc, policy_type, snmp_oid, history, value_type, ostype_id)
for i in range(1, 10000):
self.coll_policy_id = t*10000 + i
self.value_type = t*10000 + i
sql += "(" + `self.coll_policy_id` + "," + `self.name`+ "," + `self.cli_command` + "," + `self.cli_command_result` + "," + `self.desc` + "," + `self.policy_type` + "," + `self.snmp_oid` + "," + `self.history` + "," + `self.value_type` + "," + `self.ostype_id` + "),"
self.coll_policy_id = (t+1)*10000
self.value_type = (t+1)*10000
sql += "(" + `self.coll_policy_id` + "," + `self.name`+ "," + `self.cli_command` + "," + `self.cli_command_result` + "," + `self.desc` + "," + `self.policy_type` + "," + `self.snmp_oid` + "," + `self.history` + "," + `self.value_type` + "," + `self.ostype_id` + ")" print 'sql command created successfully..'
print sql try:
self.cursor.execute(sql)
self.db.commit()
print 'sql command executed successfully..'
except Exception,e:
self.db.rollback()
print 'database rollback..' + str(e)
# close database
self.db.close() print 'run successfully' if __name__ == '__main__':
inset_data = InsertData('apolo_test')
inset_data.insert_data('coll_policy') 在执行过程中由于sql语句中出现了一些关键字导致运行报错。这次是在关键字外用反引号(`)解决了这个问题。
`,repr(),str()都是将任意值转换成字符串类型的值。
`与repr()输出相同,方面机器阅读,str()输出则是方便人阅读。
例如:
>>> s = 'hi'
>>> print s
hi
>>> `s`
"'hi'"
>>> repr(s)
"'hi'"
>>> repr(1)
'1'
>>> str(s)
'hi'
>>> print `s`
'hi' >>> h = '\n'
>>> print h >>> print `h`
'\n'
>>> `h`
"'\\n'"
python批量插入mysql数据库(性能相关)以及反引号的使用的更多相关文章
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1 背景 系统中需要批量生成单据数据到数据库表,所以采用 ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- Python datatime 格式转换,插入MySQL数据库
Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...
- python 从csv文件插入mysql数据库
一个工作遇到的问题,将excel文件的内容插入到mysql数据库中. 总体思路是 excel文件-->转换成csv文件-->csv文件读取-->读取数据插入mysql数据库 用到py ...
- mysql数据库性能优化(包括SQL,表结构,索引,缓存)
优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当 ...
- MySQL实验准备(二)--Python模拟数据(MySQL数据库)
Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...
- MySQL 数据库性能优化之缓存参数优化
在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣 ...
- 优化MySQL数据库性能的八大方法
本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法. 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就 ...
- SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库
SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库 /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...
随机推荐
- 深入浅出JAVA线程池使用原理2
一.Executor框架介绍 Executor框架将Java多线程程序分解成若干个任务,将这些任务分配给若干个线程来处理,并得到任务的结果 1.1.Executor框架组成 任务:被执行任务需要实现的 ...
- java并发之线程间通信
1.volatile 关键字 java 支持多个线程同时访问一个对象或对象的成员变量,而每个线程拥有这个变量的拷贝,虽然对象或成员变量分配的内存在共享内存,但每个执行的线程可以拥有一份拷贝,可以提高程 ...
- *(volatile int *)解读
#def ine reg_gpio_ctrl *(volatile int *)(ToVirtual(GPIO_REG_CTRL)) #define A (*(volatile unsigned lo ...
- A Summary of Multi-task Learning
A Summary of Multi-task Learning author by Yubo Feng. Intro In this paper[0], the introduction of mu ...
- VC++ 实现INI文件读写操作
转载:https://blog.csdn.net/fan380485838/article/details/73188420 在实际项目开发中,会用ini配置文件,在此总结一下对ini读写操作 一:读 ...
- 2018年天梯赛LV2题目汇总小结
Ⅰ.L2-1 分而治之---邻接表 分而治之,各个击破是兵家常用的策略之一.在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破.为此参谋部提供了若干打击方案.本题 ...
- 如何使用JavaScript UI控件(WijmoJS)构建Electron应用程序
概述 What is Electron? Electron是一个使用JavaScript.HTML和CSS构建跨平台桌面应用程序的框架. 您可以将Electron与纯JavaScript或您选择的Ja ...
- css 两端对其
大段的文字直接写会有不整齐的现象 所以ui小姐姐就会和我们讲你能不能把两端对其呀 ps里面就可以呀 okok 那就两端对其好了 text-align:justify 效果为⬇️⬇️⬇️ 上面是 ...
- 使用C#控制台应用程序完成一个2048小游戏
曾经使用C#控制台应用程序写的一个2048,现在翻出来回顾一下 Box类是2048中每一个小格子的相关信息,包括格子的横纵坐标.格子的值和格子是否刚合并这些信息. Grid类是网格的相关信息,包括网格 ...
- 环境准备—之—linux下安装jdk
本文大部分转自 https://www.cnblogs.com/Dylansuns/p/6974272.html openjdk与jdk的区别 ----反正不一样,要不名字也不会不相同了 https ...