Python中文
首页
教程
问答
标签
搜索
登录
注册
使用SQLAlchemy将记录更快地插入到表中
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在解析一个日志,并使用SQLAlchemy和Python将其插入MySQL或SQLite中。现在我打开了一个到数据库的连接,当我遍历每一行时,我在解析后插入它(这只是一个大表,对SQL不是很有经验)。然后在循环完成后关闭连接。摘要代码为:</p> <pre><code>log_table = schema.Table('log_table', metadata, schema.Column('id', types.Integer, primary_key=True), schema.Column('time', types.DateTime), schema.Column('ip', types.String(length=15)) .... engine = create_engine(...) metadata.bind = engine connection = engine.connect() .... for line in file_to_parse: m = line_regex.match(line) if m: fields = m.groupdict() pythonified = pythoninfy_log(fields) #Turn them into ints, datatimes, etc if use_sql: ins = log_table.insert(values=pythonified) connection.execute(ins) parsed += 1 </code></pre> <p>我的两个问题是:</p> <ul> <li>有没有一种方法可以在这个基本框架内加速插入?可能有一个插入队列、一些插入线程、某种批量插入等等?在</li> <li>当我使用MySQL时,大约120万条记录的插入时间是15分钟。对于SQLite,插入时间是一个多小时。db引擎之间的时间差看起来是对的,还是意味着我做错了什么?在</li> </ul>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您应该尝试将一个事务放在多个插入周围,因为将数据库提交到磁盘确实需要很长时间。您将需要决定批处理级别,但粗略的第一个尝试是将一个事务包装在整个批中。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
将Pandas数据帧转换为PyTorch张量?
9 回答
将Pandas数据帧转换为scipy稀疏矩阵
7 回答
将Pandas数据帧转换为Spark Datafram时出现问题
9 回答
将pandas数据帧转换为spark DataFram时出错
10 回答
将Pandas数据帧转换为spark datafram时收到错误
1 回答
将Pandas数据帧转换为Spark数据帧
4 回答
将Pandas数据帧转换为Tensorflow数据
1 回答
将Pandas数据帧转换为tkinter obj
6 回答
将pandas数据帧转换为XML
10 回答
将Pandas数据帧转换为值sql语句
8 回答
将pandas数据帧转换为元组
3 回答
将pandas数据帧转换为元组列表
10 回答
将pandas数据帧转换为元组列表并删除所有pandas数据类型
5 回答
将pandas数据帧转换为具有头和数据类型的numpy数组
1 回答
将pandas数据帧转换为内存中的拼花地板,并将其加载到Python中的Hadoop中
8 回答
将pandas数据帧转换为内存中类似文件的对象?
1 回答
将Pandas数据帧转换为内存功能(&F)
10 回答
将pandas数据帧转换为列表列表
3 回答
将pandas数据帧转换为列表列表以输入到RNN
4 回答
将Pandas数据帧转换为单行DataFram
4 回答