参考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数据库(性能相关)以及反引号的使用的更多相关文章

  1. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1      背景 系统中需要批量生成单据数据到数据库表,所以采用 ...

  2. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  3. Python datatime 格式转换,插入MySQL数据库

    Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...

  4. python 从csv文件插入mysql数据库

    一个工作遇到的问题,将excel文件的内容插入到mysql数据库中. 总体思路是 excel文件-->转换成csv文件-->csv文件读取-->读取数据插入mysql数据库 用到py ...

  5. mysql数据库性能优化(包括SQL,表结构,索引,缓存)

    优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当 ...

  6. MySQL实验准备(二)--Python模拟数据(MySQL数据库)

    Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...

  7. MySQL 数据库性能优化之缓存参数优化

    在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣 ...

  8. 优化MySQL数据库性能的八大方法

    本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法. 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就 ...

  9. SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库

    SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库  /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...

随机推荐

  1. 18 os/os.path模块中关于文件/目录常用的函数使用方法 (转)

    os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...

  2. 基于Jenkins实现持续集成【持续更新中】

    持续集成 1.什么是持续集成:Continuous integration (CI)持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生 ...

  3. HTTPConnectionPool(host='xx.xx.xx.xx', port=xx): Max retries exceeded with url:(Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000015A25025EB8>...))

    HTTPConnectionPool(host='xx.xx.xx.xx', port=xx): Max retries exceeded with url:(Caused by ConnectTim ...

  4. xml 和 json 序列化忽略字段

    xml 和 json 序列化忽略字段: @JsonIgnore @XmlTransient

  5. 51Nod 1010 只包含因子2 3 5的数

    K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = ...

  6. 破解网页右键被禁止js

    按F12,点击console输入一下内容后按回车 javascript:alert(document.onselectstart = document.oncontextmenu= document. ...

  7. 谷歌技术"三宝"之MapReduce

    江湖传说永流传:谷歌技术有"三宝",GFS.MapReduce和大表(BigTable)! 谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年 ...

  8. git将本地项目上传码云

    1.首先在码云新建项目. 2.使用git bash工具,进入本地项目所在的文件夹. 3.执行命令 git init,初始化本地git仓库 4.执行命令 git remote add [short-na ...

  9. .Net 读取配置文件 xml

    直接解析XML文件 1.System.Xml.Linq命名空间下提供可以使用linq查询的类,使用linq to xml读取也很方便. 2.还可以使用System.Xml.Serialization类 ...

  10. HDU 6166 Senior Pan(k点中最小两点间距离)题解

    题意:n个点,m条有向边,指定k个点,问你其中最近的两点距离为多少 思路:这题的思路很巧妙,如果我们直接枚举两点做最短路那就要做C(k,2)次.但是我们换个思路,我们把k个点按照二进制每一位的0和1分 ...