python mysql多条插入
程序的目的是把文本里面的数据存储到数据库中,原来的思路是读一条,插入一条,结果就是时间长的不得了。。。18万条的数据,真是慢。
后来的想法是把所有的记录都读到一个list里,结果是mysql奔溃go away,毕竟18万条,太多了。
再后来的想法就是满1000条进行一次插入,O(∩_∩)O哈哈~,效果不错,mysql没崩溃,效率提高了好几个量级。
import MySQLdb
import codecs def FileToDatabase(file):
conn = MySQLdb.connect(host='yourhost',user='username',passwd='yourpwd',db='yourdb')
curs = conn.cursor()
fp = codecs.open(file,'r','gb2312')#文本编码是gb2312,所以以此方式打开
i = 0
L = []
for eachline in fp:
i = i + 1
list = newline.split(',')
L.append(list)
if i % 1000 == 0:#满1000插入数据库
#try:executemany好像不能使用字符串变量如executemany(sql),如此导致插入失败,还有就是插入整型的时候也不能使用%d,而是%s...
#当插入的字段并非table的全部字段时,要指定插入的字段及顺序与value内的值一致
curs.executemany("insert into season1(word1,word2,word3,word4) values(%s,%s,%s,%s)",L)
conn.commit()#没有提交的话,无法完成插入
L = []
#except:
conn.rollback()
print 'No.:'+str(i)
#print newline
fp.close()
#try:#将剩余插入数据库
curs.executemany("insert into season1(word1,word2,word3,word4) values(%s,%s,%s,%s)",L)
conn.commit()
#except:
conn.rollback()
conn.close()
对于数据库的rollback还是不太理解,以后有机会再深入了解吧
python mysql多条插入的更多相关文章
- python mysql 更新和插入数据无效
注意,在删除和增加后必须执行conn.commit()才有效,否则操作无效.
- python+mysql:实现一千万条数据插入数据库
作业要求 构建一个关系模式和课本中的关系movies(title,year,length,movietype,studioname,producerC)一样的关系,名称自定,在这个关系中插入1000万 ...
- python MySQL 插入Elasticsearch
一.需求分析 注意: 本环境使用 elasticsearch 7.0版本开发,切勿低于此版本 mysql 表结构 有一张表,记录的数据特别的多,需要将7天前的记录,插入到Elasticsearch中, ...
- Python MySQL 插入表
章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...
- mysql sql获取上条插入id,update影响行数
1.获取上条插入数据 LAST_INSERT_ID(); 2.获取update影响行数. ROW_COUNT(); mysql> UPDATE t -> SET address = 'be ...
- mysql一次插入多条数据
mysql一次插入多条数据: INSERT INTO hk_test(username, passwd) VALUES ('qmf2', 'qmf2'),('qmf3', 'qmf3'),('qmf4 ...
- MySQL使用INSERT插入多条记录
MySQL使用INSERT插入多条记录,应该如何操作呢?下面就为您详细介绍MySQL使用INSERT插入多条记录的实现方法,供您参考. 看到这个标题也许大家会问,这有什么好说的,调用多次INSERT语 ...
- mysql中迅速插入百万条测试数据的方法
对比一下,首先是用 mysql 的存储过程弄的: 复制代码代码如下: mysql>delimiter $ mysql>SET AUTOCOMMIT = 0$$ mysql> crea ...
- python多条插入问题
多条插入用excutemany(listtuple) #coding=utf-8 import MySQLdb import traceback sqlstr= "insert into t ...
随机推荐
- xcode UILabel创建和隐藏
// 创建label UILabel *label = [[UILabel alloc] init]; // 设置显示的文字 label.text = @"Hello world!Hello ...
- asp.net 向后台提交 html 代码段 包括 <> 标签
首先 在默认情况向标签类的东西是不会让你提交的 这是出于.net 的默认安全机制 我们要先在 <%@ page %> 里边加上 ValidateRequest="false&q ...
- vs2010调试快捷键
VS2010单步调试 1.设置断点 F9设置或者取消断点,如果当前行未设置断点,则F9可以再当前行设置断点,如果已经设置,则为去除断点 2.单步调试 F10不进入函数单步,F11进入函数单步 , ...
- md笔记——微信JS接口
微信js接口 隐藏微信中网页右上角按钮 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { Weix ...
- JavaScript之获取和设置元素属性
1.与我前面的随笔获取元素的那些方法不同http://www.cnblogs.com/GreenLeaves/p/5689075.html 获取元素属性的方法getAttribute()不属于docu ...
- 让你在DOS中任意切换目录
尽管Windows图形界面早已经取代了无趣的DOS字符界面(废话,Vista都呼之欲出了),不过在日常操作中,还是有很多时候需要用到命令提示符.比如批量重命名文件时.执行字符命令时.在命令行下恢复系统 ...
- 在Windows7防火墙允许指定的端口
在xp系统的时代,修改防火墙很方便,很简单.windows7或许是做得过于复杂了.当然所谓安全性也是相当于其他之前版本的系统更高了.为什么要打开端口,肯定是在windows7下启动了网络服务,需要开启 ...
- SQL Server 大数据量批量插入
private void AddShuJu_Click(object sender, RoutedEventArgs e) { Stopwatch wath = new Stopwatch(); wa ...
- Mongodb安装和基本命令
本人是在Centos中安装的mongodb 1.下载mongodb curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2. ...
- C iOcp
#include <winsock2.h> //#include <windows.h> #include <stdio.h> #define PORT 5150 ...